@liquidcommercedev/rmn-sdk 1.5.0-beta.47 → 1.5.0-beta.49
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 +844 -334
- package/dist/index.esm.js +844 -334
- package/dist/types/enums.d.ts +3 -0
- package/dist/types/modules/spot-template/rb-template.interface.d.ts +36 -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 +2 -0
- package/dist/types/rmn-client.d.ts +6 -6
- package/dist/types/types.d.ts +1 -1
- package/package.json +22 -32
- package/umd/liquidcommerce-rmn-sdk.min.js +1 -1
package/dist/index.esm.js
CHANGED
@@ -16,6 +16,8 @@ var RMN_SPOT_TYPE;
|
|
16
16
|
RMN_SPOT_TYPE["RB_VIDEO_PLAYER"] = "rbVideoPlayer";
|
17
17
|
RMN_SPOT_TYPE["RB_IN_TEXT"] = "rbInText";
|
18
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";
|
19
21
|
// IAB Standard Spot Types
|
20
22
|
RMN_SPOT_TYPE["BILLBOARD"] = "billboard";
|
21
23
|
RMN_SPOT_TYPE["LARGE_RECTANGLE"] = "largeRectangle";
|
@@ -90,6 +92,7 @@ var ENUM_TEXT_BLOCK_POSITION;
|
|
90
92
|
ENUM_TEXT_BLOCK_POSITION["TOP"] = "top";
|
91
93
|
ENUM_TEXT_BLOCK_POSITION["BOTTOM"] = "bottom";
|
92
94
|
ENUM_TEXT_BLOCK_POSITION["MIDDLE"] = "middle";
|
95
|
+
ENUM_TEXT_BLOCK_POSITION["CENTER"] = "center";
|
93
96
|
ENUM_TEXT_BLOCK_POSITION["TOP_LEFT"] = "top-left";
|
94
97
|
ENUM_TEXT_BLOCK_POSITION["TOP_RIGHT"] = "top-right";
|
95
98
|
ENUM_TEXT_BLOCK_POSITION["BOTTOM_LEFT"] = "bottom-left";
|
@@ -280,6 +283,7 @@ function bind(fn, thisArg) {
|
|
280
283
|
|
281
284
|
const {toString: toString$1} = Object.prototype;
|
282
285
|
const {getPrototypeOf} = Object;
|
286
|
+
const {iterator, toStringTag} = Symbol;
|
283
287
|
|
284
288
|
const kindOf = (cache => thing => {
|
285
289
|
const str = toString$1.call(thing);
|
@@ -320,7 +324,7 @@ const isUndefined = typeOfTest('undefined');
|
|
320
324
|
*/
|
321
325
|
function isBuffer$1(val) {
|
322
326
|
return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)
|
323
|
-
&& isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);
|
327
|
+
&& isFunction$1(val.constructor.isBuffer) && val.constructor.isBuffer(val);
|
324
328
|
}
|
325
329
|
|
326
330
|
/**
|
@@ -365,7 +369,7 @@ const isString = typeOfTest('string');
|
|
365
369
|
* @param {*} val The value to test
|
366
370
|
* @returns {boolean} True if value is a Function, otherwise false
|
367
371
|
*/
|
368
|
-
const isFunction = typeOfTest('function');
|
372
|
+
const isFunction$1 = typeOfTest('function');
|
369
373
|
|
370
374
|
/**
|
371
375
|
* Determine if a value is a Number
|
@@ -406,7 +410,28 @@ const isPlainObject = (val) => {
|
|
406
410
|
}
|
407
411
|
|
408
412
|
const prototype = getPrototypeOf(val);
|
409
|
-
return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(
|
413
|
+
return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);
|
414
|
+
};
|
415
|
+
|
416
|
+
/**
|
417
|
+
* Determine if a value is an empty object (safely handles Buffers)
|
418
|
+
*
|
419
|
+
* @param {*} val The value to test
|
420
|
+
*
|
421
|
+
* @returns {boolean} True if value is an empty object, otherwise false
|
422
|
+
*/
|
423
|
+
const isEmptyObject = (val) => {
|
424
|
+
// Early return for non-objects or Buffers to prevent RangeError
|
425
|
+
if (!isObject$1(val) || isBuffer$1(val)) {
|
426
|
+
return false;
|
427
|
+
}
|
428
|
+
|
429
|
+
try {
|
430
|
+
return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;
|
431
|
+
} catch (e) {
|
432
|
+
// Fallback for any other objects that might cause RangeError with Object.keys()
|
433
|
+
return false;
|
434
|
+
}
|
410
435
|
};
|
411
436
|
|
412
437
|
/**
|
@@ -452,7 +477,7 @@ const isFileList = kindOfTest('FileList');
|
|
452
477
|
*
|
453
478
|
* @returns {boolean} True if value is a Stream, otherwise false
|
454
479
|
*/
|
455
|
-
const isStream = (val) => isObject$1(val) && isFunction(val.pipe);
|
480
|
+
const isStream = (val) => isObject$1(val) && isFunction$1(val.pipe);
|
456
481
|
|
457
482
|
/**
|
458
483
|
* Determine if a value is a FormData
|
@@ -465,10 +490,10 @@ const isFormData = (thing) => {
|
|
465
490
|
let kind;
|
466
491
|
return thing && (
|
467
492
|
(typeof FormData === 'function' && thing instanceof FormData) || (
|
468
|
-
isFunction(thing.append) && (
|
493
|
+
isFunction$1(thing.append) && (
|
469
494
|
(kind = kindOf(thing)) === 'formdata' ||
|
470
495
|
// detect form-data instance
|
471
|
-
(kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')
|
496
|
+
(kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]')
|
472
497
|
)
|
473
498
|
)
|
474
499
|
)
|
@@ -531,6 +556,11 @@ function forEach(obj, fn, {allOwnKeys = false} = {}) {
|
|
531
556
|
fn.call(null, obj[i], i, obj);
|
532
557
|
}
|
533
558
|
} else {
|
559
|
+
// Buffer check
|
560
|
+
if (isBuffer$1(obj)) {
|
561
|
+
return;
|
562
|
+
}
|
563
|
+
|
534
564
|
// Iterate over object keys
|
535
565
|
const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
|
536
566
|
const len = keys.length;
|
@@ -544,6 +574,10 @@ function forEach(obj, fn, {allOwnKeys = false} = {}) {
|
|
544
574
|
}
|
545
575
|
|
546
576
|
function findKey(obj, key) {
|
577
|
+
if (isBuffer$1(obj)){
|
578
|
+
return null;
|
579
|
+
}
|
580
|
+
|
547
581
|
key = key.toLowerCase();
|
548
582
|
const keys = Object.keys(obj);
|
549
583
|
let i = keys.length;
|
@@ -584,7 +618,7 @@ const isContextDefined = (context) => !isUndefined(context) && context !== _glob
|
|
584
618
|
* @returns {Object} Result of all merge properties
|
585
619
|
*/
|
586
620
|
function merge(/* obj1, obj2, obj3, ... */) {
|
587
|
-
const {caseless} = isContextDefined(this) && this || {};
|
621
|
+
const {caseless, skipUndefined} = isContextDefined(this) && this || {};
|
588
622
|
const result = {};
|
589
623
|
const assignValue = (val, key) => {
|
590
624
|
const targetKey = caseless && findKey(result, key) || key;
|
@@ -594,7 +628,7 @@ function merge(/* obj1, obj2, obj3, ... */) {
|
|
594
628
|
result[targetKey] = merge({}, val);
|
595
629
|
} else if (isArray$1(val)) {
|
596
630
|
result[targetKey] = val.slice();
|
597
|
-
} else {
|
631
|
+
} else if (!skipUndefined || !isUndefined(val)) {
|
598
632
|
result[targetKey] = val;
|
599
633
|
}
|
600
634
|
};
|
@@ -617,7 +651,7 @@ function merge(/* obj1, obj2, obj3, ... */) {
|
|
617
651
|
*/
|
618
652
|
const extend = (a, b, thisArg, {allOwnKeys}= {}) => {
|
619
653
|
forEach(b, (val, key) => {
|
620
|
-
if (thisArg && isFunction(val)) {
|
654
|
+
if (thisArg && isFunction$1(val)) {
|
621
655
|
a[key] = bind(val, thisArg);
|
622
656
|
} else {
|
623
657
|
a[key] = val;
|
@@ -757,13 +791,13 @@ const isTypedArray = (TypedArray => {
|
|
757
791
|
* @returns {void}
|
758
792
|
*/
|
759
793
|
const forEachEntry = (obj, fn) => {
|
760
|
-
const generator = obj && obj[
|
794
|
+
const generator = obj && obj[iterator];
|
761
795
|
|
762
|
-
const
|
796
|
+
const _iterator = generator.call(obj);
|
763
797
|
|
764
798
|
let result;
|
765
799
|
|
766
|
-
while ((result =
|
800
|
+
while ((result = _iterator.next()) && !result.done) {
|
767
801
|
const pair = result.value;
|
768
802
|
fn.call(obj, pair[0], pair[1]);
|
769
803
|
}
|
@@ -833,13 +867,13 @@ const reduceDescriptors = (obj, reducer) => {
|
|
833
867
|
const freezeMethods = (obj) => {
|
834
868
|
reduceDescriptors(obj, (descriptor, name) => {
|
835
869
|
// skip restricted props in strict mode
|
836
|
-
if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
|
870
|
+
if (isFunction$1(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
|
837
871
|
return false;
|
838
872
|
}
|
839
873
|
|
840
874
|
const value = obj[name];
|
841
875
|
|
842
|
-
if (!isFunction(value)) return;
|
876
|
+
if (!isFunction$1(value)) return;
|
843
877
|
|
844
878
|
descriptor.enumerable = false;
|
845
879
|
|
@@ -876,6 +910,8 @@ const toFiniteNumber = (value, defaultValue) => {
|
|
876
910
|
return value != null && Number.isFinite(value = +value) ? value : defaultValue;
|
877
911
|
};
|
878
912
|
|
913
|
+
|
914
|
+
|
879
915
|
/**
|
880
916
|
* If the thing is a FormData object, return true, otherwise return false.
|
881
917
|
*
|
@@ -884,7 +920,7 @@ const toFiniteNumber = (value, defaultValue) => {
|
|
884
920
|
* @returns {boolean}
|
885
921
|
*/
|
886
922
|
function isSpecCompliantForm(thing) {
|
887
|
-
return !!(thing && isFunction(thing.append) && thing[
|
923
|
+
return !!(thing && isFunction$1(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);
|
888
924
|
}
|
889
925
|
|
890
926
|
const toJSONObject = (obj) => {
|
@@ -897,6 +933,11 @@ const toJSONObject = (obj) => {
|
|
897
933
|
return;
|
898
934
|
}
|
899
935
|
|
936
|
+
//Buffer check
|
937
|
+
if (isBuffer$1(source)) {
|
938
|
+
return source;
|
939
|
+
}
|
940
|
+
|
900
941
|
if(!('toJSON' in source)) {
|
901
942
|
stack[i] = source;
|
902
943
|
const target = isArray$1(source) ? [] : {};
|
@@ -921,7 +962,7 @@ const toJSONObject = (obj) => {
|
|
921
962
|
const isAsyncFn = kindOfTest('AsyncFunction');
|
922
963
|
|
923
964
|
const isThenable = (thing) =>
|
924
|
-
thing && (isObject$1(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);
|
965
|
+
thing && (isObject$1(thing) || isFunction$1(thing)) && isFunction$1(thing.then) && isFunction$1(thing.catch);
|
925
966
|
|
926
967
|
// original code
|
927
968
|
// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34
|
@@ -945,7 +986,7 @@ const _setImmediate = ((setImmediateSupported, postMessageSupported) => {
|
|
945
986
|
})(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
|
946
987
|
})(
|
947
988
|
typeof setImmediate === 'function',
|
948
|
-
isFunction(_global.postMessage)
|
989
|
+
isFunction$1(_global.postMessage)
|
949
990
|
);
|
950
991
|
|
951
992
|
const asap = typeof queueMicrotask !== 'undefined' ?
|
@@ -953,6 +994,10 @@ const asap = typeof queueMicrotask !== 'undefined' ?
|
|
953
994
|
|
954
995
|
// *********************
|
955
996
|
|
997
|
+
|
998
|
+
const isIterable = (thing) => thing != null && isFunction$1(thing[iterator]);
|
999
|
+
|
1000
|
+
|
956
1001
|
var utils$1 = {
|
957
1002
|
isArray: isArray$1,
|
958
1003
|
isArrayBuffer,
|
@@ -964,6 +1009,7 @@ var utils$1 = {
|
|
964
1009
|
isBoolean,
|
965
1010
|
isObject: isObject$1,
|
966
1011
|
isPlainObject,
|
1012
|
+
isEmptyObject,
|
967
1013
|
isReadableStream,
|
968
1014
|
isRequest,
|
969
1015
|
isResponse,
|
@@ -973,7 +1019,7 @@ var utils$1 = {
|
|
973
1019
|
isFile,
|
974
1020
|
isBlob,
|
975
1021
|
isRegExp,
|
976
|
-
isFunction,
|
1022
|
+
isFunction: isFunction$1,
|
977
1023
|
isStream,
|
978
1024
|
isURLSearchParams,
|
979
1025
|
isTypedArray,
|
@@ -1008,7 +1054,8 @@ var utils$1 = {
|
|
1008
1054
|
isAsyncFn,
|
1009
1055
|
isThenable,
|
1010
1056
|
setImmediate: _setImmediate,
|
1011
|
-
asap
|
1057
|
+
asap,
|
1058
|
+
isIterable
|
1012
1059
|
};
|
1013
1060
|
|
1014
1061
|
var lookup = [];
|
@@ -3075,11 +3122,18 @@ AxiosError$1.from = (error, code, config, request, response, customProps) => {
|
|
3075
3122
|
return prop !== 'isAxiosError';
|
3076
3123
|
});
|
3077
3124
|
|
3078
|
-
|
3125
|
+
const msg = error && error.message ? error.message : 'Error';
|
3126
|
+
|
3127
|
+
// Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)
|
3128
|
+
const errCode = code == null && error ? error.code : code;
|
3129
|
+
AxiosError$1.call(axiosError, msg, errCode, config, request, response);
|
3079
3130
|
|
3080
|
-
|
3131
|
+
// Chain the original error on the standard field; non-enumerable to avoid JSON noise
|
3132
|
+
if (error && axiosError.cause == null) {
|
3133
|
+
Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });
|
3134
|
+
}
|
3081
3135
|
|
3082
|
-
axiosError.name = error.name;
|
3136
|
+
axiosError.name = (error && error.name) || 'Error';
|
3083
3137
|
|
3084
3138
|
customProps && Object.assign(axiosError, customProps);
|
3085
3139
|
|
@@ -3204,6 +3258,10 @@ function toFormData$1(obj, formData, options) {
|
|
3204
3258
|
return value.toISOString();
|
3205
3259
|
}
|
3206
3260
|
|
3261
|
+
if (utils$1.isBoolean(value)) {
|
3262
|
+
return value.toString();
|
3263
|
+
}
|
3264
|
+
|
3207
3265
|
if (!useBlob && utils$1.isBlob(value)) {
|
3208
3266
|
throw new AxiosError$1('Blob is not supported. Use a Buffer instead.');
|
3209
3267
|
}
|
@@ -3366,9 +3424,7 @@ function encode$1(val) {
|
|
3366
3424
|
replace(/%3A/gi, ':').
|
3367
3425
|
replace(/%24/g, '$').
|
3368
3426
|
replace(/%2C/gi, ',').
|
3369
|
-
replace(/%20/g, '+')
|
3370
|
-
replace(/%5B/gi, '[').
|
3371
|
-
replace(/%5D/gi, ']');
|
3427
|
+
replace(/%20/g, '+');
|
3372
3428
|
}
|
3373
3429
|
|
3374
3430
|
/**
|
@@ -3565,7 +3621,7 @@ var platform = {
|
|
3565
3621
|
};
|
3566
3622
|
|
3567
3623
|
function toURLEncodedForm(data, options) {
|
3568
|
-
return toFormData$1(data, new platform.classes.URLSearchParams(),
|
3624
|
+
return toFormData$1(data, new platform.classes.URLSearchParams(), {
|
3569
3625
|
visitor: function(value, key, path, helpers) {
|
3570
3626
|
if (platform.isNode && utils$1.isBuffer(value)) {
|
3571
3627
|
this.append(key, value.toString('base64'));
|
@@ -3573,8 +3629,9 @@ function toURLEncodedForm(data, options) {
|
|
3573
3629
|
}
|
3574
3630
|
|
3575
3631
|
return helpers.defaultVisitor.apply(this, arguments);
|
3576
|
-
}
|
3577
|
-
|
3632
|
+
},
|
3633
|
+
...options
|
3634
|
+
});
|
3578
3635
|
}
|
3579
3636
|
|
3580
3637
|
/**
|
@@ -3770,7 +3827,7 @@ const defaults = {
|
|
3770
3827
|
const strictJSONParsing = !silentJSONParsing && JSONRequested;
|
3771
3828
|
|
3772
3829
|
try {
|
3773
|
-
return JSON.parse(data);
|
3830
|
+
return JSON.parse(data, this.parseReviver);
|
3774
3831
|
} catch (e) {
|
3775
3832
|
if (strictJSONParsing) {
|
3776
3833
|
if (e.name === 'SyntaxError') {
|
@@ -3966,10 +4023,18 @@ let AxiosHeaders$1 = class AxiosHeaders {
|
|
3966
4023
|
setHeaders(header, valueOrRewrite);
|
3967
4024
|
} else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
|
3968
4025
|
setHeaders(parseHeaders(header), valueOrRewrite);
|
3969
|
-
} else if (utils$1.
|
3970
|
-
|
3971
|
-
|
4026
|
+
} else if (utils$1.isObject(header) && utils$1.isIterable(header)) {
|
4027
|
+
let obj = {}, dest, key;
|
4028
|
+
for (const entry of header) {
|
4029
|
+
if (!utils$1.isArray(entry)) {
|
4030
|
+
throw TypeError('Object iterator must return a key-value pair');
|
4031
|
+
}
|
4032
|
+
|
4033
|
+
obj[key = entry[0]] = (dest = obj[key]) ?
|
4034
|
+
(utils$1.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];
|
3972
4035
|
}
|
4036
|
+
|
4037
|
+
setHeaders(obj, valueOrRewrite);
|
3973
4038
|
} else {
|
3974
4039
|
header != null && setHeader(valueOrRewrite, header, rewrite);
|
3975
4040
|
}
|
@@ -4111,6 +4176,10 @@ let AxiosHeaders$1 = class AxiosHeaders {
|
|
4111
4176
|
return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n');
|
4112
4177
|
}
|
4113
4178
|
|
4179
|
+
getSetCookie() {
|
4180
|
+
return this.get("set-cookie") || [];
|
4181
|
+
}
|
4182
|
+
|
4114
4183
|
get [Symbol.toStringTag]() {
|
4115
4184
|
return 'AxiosHeaders';
|
4116
4185
|
}
|
@@ -4311,7 +4380,7 @@ function throttle(fn, freq) {
|
|
4311
4380
|
clearTimeout(timer);
|
4312
4381
|
timer = null;
|
4313
4382
|
}
|
4314
|
-
fn
|
4383
|
+
fn(...args);
|
4315
4384
|
};
|
4316
4385
|
|
4317
4386
|
const throttled = (...args) => {
|
@@ -4468,7 +4537,7 @@ function combineURLs(baseURL, relativeURL) {
|
|
4468
4537
|
*/
|
4469
4538
|
function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
|
4470
4539
|
let isRelativeUrl = !isAbsoluteURL(requestedURL);
|
4471
|
-
if (baseURL && isRelativeUrl || allowAbsoluteUrls == false) {
|
4540
|
+
if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {
|
4472
4541
|
return combineURLs(baseURL, requestedURL);
|
4473
4542
|
}
|
4474
4543
|
return requestedURL;
|
@@ -4567,7 +4636,7 @@ function mergeConfig$1(config1, config2) {
|
|
4567
4636
|
headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)
|
4568
4637
|
};
|
4569
4638
|
|
4570
|
-
utils$1.forEach(Object.keys(
|
4639
|
+
utils$1.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {
|
4571
4640
|
const merge = mergeMap[prop] || mergeDeepProperties;
|
4572
4641
|
const configValue = merge(config1[prop], config2[prop], prop);
|
4573
4642
|
(utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
|
@@ -4579,7 +4648,7 @@ function mergeConfig$1(config1, config2) {
|
|
4579
4648
|
var resolveConfig = (config) => {
|
4580
4649
|
const newConfig = mergeConfig$1({}, config);
|
4581
4650
|
|
4582
|
-
let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;
|
4651
|
+
let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
|
4583
4652
|
|
4584
4653
|
newConfig.headers = headers = AxiosHeaders$1.from(headers);
|
4585
4654
|
|
@@ -4592,17 +4661,21 @@ var resolveConfig = (config) => {
|
|
4592
4661
|
);
|
4593
4662
|
}
|
4594
4663
|
|
4595
|
-
let contentType;
|
4596
|
-
|
4597
4664
|
if (utils$1.isFormData(data)) {
|
4598
4665
|
if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {
|
4599
|
-
headers.setContentType(undefined); //
|
4600
|
-
} else if ((
|
4601
|
-
//
|
4602
|
-
const
|
4603
|
-
headers
|
4666
|
+
headers.setContentType(undefined); // browser handles it
|
4667
|
+
} else if (utils$1.isFunction(data.getHeaders)) {
|
4668
|
+
// Node.js FormData (like form-data package)
|
4669
|
+
const formHeaders = data.getHeaders();
|
4670
|
+
// Only set safe headers to avoid overwriting security headers
|
4671
|
+
const allowedHeaders = ['content-type', 'content-length'];
|
4672
|
+
Object.entries(formHeaders).forEach(([key, val]) => {
|
4673
|
+
if (allowedHeaders.includes(key.toLowerCase())) {
|
4674
|
+
headers.set(key, val);
|
4675
|
+
}
|
4676
|
+
});
|
4604
4677
|
}
|
4605
|
-
}
|
4678
|
+
}
|
4606
4679
|
|
4607
4680
|
// Add xsrf header
|
4608
4681
|
// This is only done if running in a standard browser environment.
|
@@ -4719,15 +4792,18 @@ var xhrAdapter = isXHRAdapterSupported && function (config) {
|
|
4719
4792
|
};
|
4720
4793
|
|
4721
4794
|
// Handle low level network errors
|
4722
|
-
|
4723
|
-
|
4724
|
-
|
4725
|
-
|
4726
|
-
|
4727
|
-
|
4728
|
-
|
4795
|
+
request.onerror = function handleError(event) {
|
4796
|
+
// Browsers deliver a ProgressEvent in XHR onerror
|
4797
|
+
// (message may be empty; when present, surface it)
|
4798
|
+
// See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event
|
4799
|
+
const msg = event && event.message ? event.message : 'Network Error';
|
4800
|
+
const err = new AxiosError$1(msg, AxiosError$1.ERR_NETWORK, config, request);
|
4801
|
+
// attach the underlying event for consumers who want details
|
4802
|
+
err.event = event || null;
|
4803
|
+
reject(err);
|
4804
|
+
request = null;
|
4729
4805
|
};
|
4730
|
-
|
4806
|
+
|
4731
4807
|
// Handle timeout
|
4732
4808
|
request.ontimeout = function handleTimeout() {
|
4733
4809
|
let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';
|
@@ -4941,14 +5017,18 @@ const trackStream = (stream, chunkSize, onProgress, onFinish) => {
|
|
4941
5017
|
})
|
4942
5018
|
};
|
4943
5019
|
|
4944
|
-
const
|
4945
|
-
|
5020
|
+
const DEFAULT_CHUNK_SIZE = 64 * 1024;
|
5021
|
+
|
5022
|
+
const {isFunction} = utils$1;
|
5023
|
+
|
5024
|
+
const globalFetchAPI = (({Request, Response}) => ({
|
5025
|
+
Request, Response
|
5026
|
+
}))(utils$1.global);
|
5027
|
+
|
5028
|
+
const {
|
5029
|
+
ReadableStream: ReadableStream$1, TextEncoder: TextEncoder$1
|
5030
|
+
} = utils$1.global;
|
4946
5031
|
|
4947
|
-
// used only inside the fetch adapter
|
4948
|
-
const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?
|
4949
|
-
((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :
|
4950
|
-
async (str) => new Uint8Array(await new Response(str).arrayBuffer())
|
4951
|
-
);
|
4952
5032
|
|
4953
5033
|
const test = (fn, ...args) => {
|
4954
5034
|
try {
|
@@ -4958,211 +5038,268 @@ const test = (fn, ...args) => {
|
|
4958
5038
|
}
|
4959
5039
|
};
|
4960
5040
|
|
4961
|
-
const
|
4962
|
-
|
5041
|
+
const factory = (env) => {
|
5042
|
+
env = utils$1.merge.call({
|
5043
|
+
skipUndefined: true
|
5044
|
+
}, globalFetchAPI, env);
|
4963
5045
|
|
4964
|
-
const
|
4965
|
-
|
4966
|
-
|
4967
|
-
|
4968
|
-
duplexAccessed = true;
|
4969
|
-
return 'half';
|
4970
|
-
},
|
4971
|
-
}).headers.has('Content-Type');
|
5046
|
+
const {fetch: envFetch, Request, Response} = env;
|
5047
|
+
const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';
|
5048
|
+
const isRequestSupported = isFunction(Request);
|
5049
|
+
const isResponseSupported = isFunction(Response);
|
4972
5050
|
|
4973
|
-
|
4974
|
-
|
5051
|
+
if (!isFetchSupported) {
|
5052
|
+
return false;
|
5053
|
+
}
|
4975
5054
|
|
4976
|
-
const
|
5055
|
+
const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream$1);
|
4977
5056
|
|
4978
|
-
const
|
4979
|
-
|
5057
|
+
const encodeText = isFetchSupported && (typeof TextEncoder$1 === 'function' ?
|
5058
|
+
((encoder) => (str) => encoder.encode(str))(new TextEncoder$1()) :
|
5059
|
+
async (str) => new Uint8Array(await new Request(str).arrayBuffer())
|
5060
|
+
);
|
4980
5061
|
|
5062
|
+
const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {
|
5063
|
+
let duplexAccessed = false;
|
4981
5064
|
|
4982
|
-
const
|
4983
|
-
|
4984
|
-
|
5065
|
+
const hasContentType = new Request(platform.origin, {
|
5066
|
+
body: new ReadableStream$1(),
|
5067
|
+
method: 'POST',
|
5068
|
+
get duplex() {
|
5069
|
+
duplexAccessed = true;
|
5070
|
+
return 'half';
|
5071
|
+
},
|
5072
|
+
}).headers.has('Content-Type');
|
4985
5073
|
|
4986
|
-
|
4987
|
-
['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
|
4988
|
-
!resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :
|
4989
|
-
(_, config) => {
|
4990
|
-
throw new AxiosError$1(`Response type '${type}' is not supported`, AxiosError$1.ERR_NOT_SUPPORT, config);
|
4991
|
-
});
|
5074
|
+
return duplexAccessed && !hasContentType;
|
4992
5075
|
});
|
4993
|
-
})(new Response));
|
4994
5076
|
|
4995
|
-
const
|
4996
|
-
|
4997
|
-
return 0;
|
4998
|
-
}
|
5077
|
+
const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&
|
5078
|
+
test(() => utils$1.isReadableStream(new Response('').body));
|
4999
5079
|
|
5000
|
-
|
5001
|
-
|
5002
|
-
}
|
5080
|
+
const resolvers = {
|
5081
|
+
stream: supportsResponseStream && ((res) => res.body)
|
5082
|
+
};
|
5003
5083
|
|
5004
|
-
|
5005
|
-
|
5006
|
-
|
5007
|
-
|
5084
|
+
isFetchSupported && ((() => {
|
5085
|
+
['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
|
5086
|
+
!resolvers[type] && (resolvers[type] = (res, config) => {
|
5087
|
+
let method = res && res[type];
|
5088
|
+
|
5089
|
+
if (method) {
|
5090
|
+
return method.call(res);
|
5091
|
+
}
|
5092
|
+
|
5093
|
+
throw new AxiosError$1(`Response type '${type}' is not supported`, AxiosError$1.ERR_NOT_SUPPORT, config);
|
5094
|
+
});
|
5008
5095
|
});
|
5009
|
-
|
5010
|
-
}
|
5096
|
+
})());
|
5011
5097
|
|
5012
|
-
|
5013
|
-
|
5014
|
-
|
5098
|
+
const getBodyLength = async (body) => {
|
5099
|
+
if (body == null) {
|
5100
|
+
return 0;
|
5101
|
+
}
|
5015
5102
|
|
5016
|
-
|
5017
|
-
|
5018
|
-
|
5103
|
+
if (utils$1.isBlob(body)) {
|
5104
|
+
return body.size;
|
5105
|
+
}
|
5019
5106
|
|
5020
|
-
|
5021
|
-
|
5022
|
-
|
5023
|
-
|
5107
|
+
if (utils$1.isSpecCompliantForm(body)) {
|
5108
|
+
const _request = new Request(platform.origin, {
|
5109
|
+
method: 'POST',
|
5110
|
+
body,
|
5111
|
+
});
|
5112
|
+
return (await _request.arrayBuffer()).byteLength;
|
5113
|
+
}
|
5024
5114
|
|
5025
|
-
|
5026
|
-
|
5115
|
+
if (utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {
|
5116
|
+
return body.byteLength;
|
5117
|
+
}
|
5027
5118
|
|
5028
|
-
|
5029
|
-
|
5119
|
+
if (utils$1.isURLSearchParams(body)) {
|
5120
|
+
body = body + '';
|
5121
|
+
}
|
5122
|
+
|
5123
|
+
if (utils$1.isString(body)) {
|
5124
|
+
return (await encodeText(body)).byteLength;
|
5125
|
+
}
|
5126
|
+
};
|
5127
|
+
|
5128
|
+
const resolveBodyLength = async (headers, body) => {
|
5129
|
+
const length = utils$1.toFiniteNumber(headers.getContentLength());
|
5130
|
+
|
5131
|
+
return length == null ? getBodyLength(body) : length;
|
5132
|
+
};
|
5133
|
+
|
5134
|
+
return async (config) => {
|
5135
|
+
let {
|
5136
|
+
url,
|
5137
|
+
method,
|
5138
|
+
data,
|
5139
|
+
signal,
|
5140
|
+
cancelToken,
|
5141
|
+
timeout,
|
5142
|
+
onDownloadProgress,
|
5143
|
+
onUploadProgress,
|
5144
|
+
responseType,
|
5145
|
+
headers,
|
5146
|
+
withCredentials = 'same-origin',
|
5147
|
+
fetchOptions
|
5148
|
+
} = resolveConfig(config);
|
5149
|
+
|
5150
|
+
let _fetch = envFetch || fetch;
|
5151
|
+
|
5152
|
+
responseType = responseType ? (responseType + '').toLowerCase() : 'text';
|
5030
5153
|
|
5031
|
-
|
5032
|
-
|
5033
|
-
|
5034
|
-
|
5035
|
-
|
5036
|
-
signal,
|
5037
|
-
cancelToken,
|
5038
|
-
timeout,
|
5039
|
-
onDownloadProgress,
|
5040
|
-
onUploadProgress,
|
5041
|
-
responseType,
|
5042
|
-
headers,
|
5043
|
-
withCredentials = 'same-origin',
|
5044
|
-
fetchOptions
|
5045
|
-
} = resolveConfig(config);
|
5046
|
-
|
5047
|
-
responseType = responseType ? (responseType + '').toLowerCase() : 'text';
|
5048
|
-
|
5049
|
-
let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
|
5050
|
-
|
5051
|
-
let request;
|
5052
|
-
|
5053
|
-
const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
|
5154
|
+
let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
|
5155
|
+
|
5156
|
+
let request = null;
|
5157
|
+
|
5158
|
+
const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
|
5054
5159
|
composedSignal.unsubscribe();
|
5055
|
-
|
5160
|
+
});
|
5056
5161
|
|
5057
|
-
|
5162
|
+
let requestContentLength;
|
5058
5163
|
|
5059
|
-
|
5060
|
-
|
5061
|
-
|
5062
|
-
|
5063
|
-
|
5064
|
-
|
5065
|
-
|
5066
|
-
|
5067
|
-
|
5068
|
-
|
5164
|
+
try {
|
5165
|
+
if (
|
5166
|
+
onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&
|
5167
|
+
(requestContentLength = await resolveBodyLength(headers, data)) !== 0
|
5168
|
+
) {
|
5169
|
+
let _request = new Request(url, {
|
5170
|
+
method: 'POST',
|
5171
|
+
body: data,
|
5172
|
+
duplex: "half"
|
5173
|
+
});
|
5069
5174
|
|
5070
|
-
|
5175
|
+
let contentTypeHeader;
|
5071
5176
|
|
5072
|
-
|
5073
|
-
|
5074
|
-
|
5177
|
+
if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
|
5178
|
+
headers.setContentType(contentTypeHeader);
|
5179
|
+
}
|
5075
5180
|
|
5076
|
-
|
5077
|
-
|
5078
|
-
|
5079
|
-
|
5080
|
-
|
5181
|
+
if (_request.body) {
|
5182
|
+
const [onProgress, flush] = progressEventDecorator(
|
5183
|
+
requestContentLength,
|
5184
|
+
progressEventReducer(asyncDecorator(onUploadProgress))
|
5185
|
+
);
|
5081
5186
|
|
5082
|
-
|
5187
|
+
data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
|
5188
|
+
}
|
5083
5189
|
}
|
5084
|
-
}
|
5085
5190
|
|
5086
|
-
|
5087
|
-
|
5088
|
-
|
5191
|
+
if (!utils$1.isString(withCredentials)) {
|
5192
|
+
withCredentials = withCredentials ? 'include' : 'omit';
|
5193
|
+
}
|
5089
5194
|
|
5090
|
-
|
5091
|
-
|
5092
|
-
|
5093
|
-
request = new Request(url, {
|
5094
|
-
...fetchOptions,
|
5095
|
-
signal: composedSignal,
|
5096
|
-
method: method.toUpperCase(),
|
5097
|
-
headers: headers.normalize().toJSON(),
|
5098
|
-
body: data,
|
5099
|
-
duplex: "half",
|
5100
|
-
credentials: isCredentialsSupported ? withCredentials : undefined
|
5101
|
-
});
|
5195
|
+
// Cloudflare Workers throws when credentials are defined
|
5196
|
+
// see https://github.com/cloudflare/workerd/issues/902
|
5197
|
+
const isCredentialsSupported = isRequestSupported && "credentials" in Request.prototype;
|
5102
5198
|
|
5103
|
-
|
5199
|
+
const resolvedOptions = {
|
5200
|
+
...fetchOptions,
|
5201
|
+
signal: composedSignal,
|
5202
|
+
method: method.toUpperCase(),
|
5203
|
+
headers: headers.normalize().toJSON(),
|
5204
|
+
body: data,
|
5205
|
+
duplex: "half",
|
5206
|
+
credentials: isCredentialsSupported ? withCredentials : undefined
|
5207
|
+
};
|
5104
5208
|
|
5105
|
-
|
5209
|
+
request = isRequestSupported && new Request(url, resolvedOptions);
|
5106
5210
|
|
5107
|
-
|
5108
|
-
const options = {};
|
5211
|
+
let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));
|
5109
5212
|
|
5110
|
-
|
5111
|
-
options[prop] = response[prop];
|
5112
|
-
});
|
5213
|
+
const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
|
5113
5214
|
|
5114
|
-
|
5215
|
+
if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {
|
5216
|
+
const options = {};
|
5115
5217
|
|
5116
|
-
|
5117
|
-
|
5118
|
-
|
5119
|
-
) || [];
|
5218
|
+
['status', 'statusText', 'headers'].forEach(prop => {
|
5219
|
+
options[prop] = response[prop];
|
5220
|
+
});
|
5120
5221
|
|
5121
|
-
|
5122
|
-
trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
|
5123
|
-
flush && flush();
|
5124
|
-
unsubscribe && unsubscribe();
|
5125
|
-
}),
|
5126
|
-
options
|
5127
|
-
);
|
5128
|
-
}
|
5222
|
+
const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));
|
5129
5223
|
|
5130
|
-
|
5224
|
+
const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
|
5225
|
+
responseContentLength,
|
5226
|
+
progressEventReducer(asyncDecorator(onDownloadProgress), true)
|
5227
|
+
) || [];
|
5131
5228
|
|
5132
|
-
|
5229
|
+
response = new Response(
|
5230
|
+
trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
|
5231
|
+
flush && flush();
|
5232
|
+
unsubscribe && unsubscribe();
|
5233
|
+
}),
|
5234
|
+
options
|
5235
|
+
);
|
5236
|
+
}
|
5133
5237
|
|
5134
|
-
|
5238
|
+
responseType = responseType || 'text';
|
5135
5239
|
|
5136
|
-
|
5137
|
-
settle(resolve, reject, {
|
5138
|
-
data: responseData,
|
5139
|
-
headers: AxiosHeaders$1.from(response.headers),
|
5140
|
-
status: response.status,
|
5141
|
-
statusText: response.statusText,
|
5142
|
-
config,
|
5143
|
-
request
|
5144
|
-
});
|
5145
|
-
})
|
5146
|
-
} catch (err) {
|
5147
|
-
unsubscribe && unsubscribe();
|
5240
|
+
let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);
|
5148
5241
|
|
5149
|
-
|
5150
|
-
|
5151
|
-
|
5152
|
-
{
|
5153
|
-
|
5154
|
-
|
5155
|
-
|
5242
|
+
!isStreamResponse && unsubscribe && unsubscribe();
|
5243
|
+
|
5244
|
+
return await new Promise((resolve, reject) => {
|
5245
|
+
settle(resolve, reject, {
|
5246
|
+
data: responseData,
|
5247
|
+
headers: AxiosHeaders$1.from(response.headers),
|
5248
|
+
status: response.status,
|
5249
|
+
statusText: response.statusText,
|
5250
|
+
config,
|
5251
|
+
request
|
5252
|
+
});
|
5253
|
+
})
|
5254
|
+
} catch (err) {
|
5255
|
+
unsubscribe && unsubscribe();
|
5256
|
+
|
5257
|
+
if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {
|
5258
|
+
throw Object.assign(
|
5259
|
+
new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request),
|
5260
|
+
{
|
5261
|
+
cause: err.cause || err
|
5262
|
+
}
|
5263
|
+
)
|
5264
|
+
}
|
5265
|
+
|
5266
|
+
throw AxiosError$1.from(err, err && err.code, config, request);
|
5156
5267
|
}
|
5268
|
+
}
|
5269
|
+
};
|
5157
5270
|
|
5158
|
-
|
5271
|
+
const seedCache = new Map();
|
5272
|
+
|
5273
|
+
const getFetch = (config) => {
|
5274
|
+
let env = config ? config.env : {};
|
5275
|
+
const {fetch, Request, Response} = env;
|
5276
|
+
const seeds = [
|
5277
|
+
Request, Response, fetch
|
5278
|
+
];
|
5279
|
+
|
5280
|
+
let len = seeds.length, i = len,
|
5281
|
+
seed, target, map = seedCache;
|
5282
|
+
|
5283
|
+
while (i--) {
|
5284
|
+
seed = seeds[i];
|
5285
|
+
target = map.get(seed);
|
5286
|
+
|
5287
|
+
target === undefined && map.set(seed, target = (i ? new Map() : factory(env)));
|
5288
|
+
|
5289
|
+
map = target;
|
5159
5290
|
}
|
5160
|
-
|
5291
|
+
|
5292
|
+
return target;
|
5293
|
+
};
|
5294
|
+
|
5295
|
+
getFetch();
|
5161
5296
|
|
5162
5297
|
const knownAdapters = {
|
5163
5298
|
http: httpAdapter,
|
5164
5299
|
xhr: xhrAdapter,
|
5165
|
-
fetch:
|
5300
|
+
fetch: {
|
5301
|
+
get: getFetch,
|
5302
|
+
}
|
5166
5303
|
};
|
5167
5304
|
|
5168
5305
|
utils$1.forEach(knownAdapters, (fn, value) => {
|
@@ -5181,7 +5318,7 @@ const renderReason = (reason) => `- ${reason}`;
|
|
5181
5318
|
const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;
|
5182
5319
|
|
5183
5320
|
var adapters = {
|
5184
|
-
getAdapter: (adapters) => {
|
5321
|
+
getAdapter: (adapters, config) => {
|
5185
5322
|
adapters = utils$1.isArray(adapters) ? adapters : [adapters];
|
5186
5323
|
|
5187
5324
|
const {length} = adapters;
|
@@ -5204,7 +5341,7 @@ var adapters = {
|
|
5204
5341
|
}
|
5205
5342
|
}
|
5206
5343
|
|
5207
|
-
if (adapter) {
|
5344
|
+
if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) {
|
5208
5345
|
break;
|
5209
5346
|
}
|
5210
5347
|
|
@@ -5272,7 +5409,7 @@ function dispatchRequest(config) {
|
|
5272
5409
|
config.headers.setContentType('application/x-www-form-urlencoded', false);
|
5273
5410
|
}
|
5274
5411
|
|
5275
|
-
const adapter = adapters.getAdapter(config.adapter || defaults.adapter);
|
5412
|
+
const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);
|
5276
5413
|
|
5277
5414
|
return adapter(config).then(function onAdapterResolution(response) {
|
5278
5415
|
throwIfCancellationRequested(config);
|
@@ -5306,7 +5443,7 @@ function dispatchRequest(config) {
|
|
5306
5443
|
});
|
5307
5444
|
}
|
5308
5445
|
|
5309
|
-
const VERSION$1 = "1.
|
5446
|
+
const VERSION$1 = "1.12.2";
|
5310
5447
|
|
5311
5448
|
const validators$1 = {};
|
5312
5449
|
|
@@ -5414,7 +5551,7 @@ const validators = validator.validators;
|
|
5414
5551
|
*/
|
5415
5552
|
let Axios$1 = class Axios {
|
5416
5553
|
constructor(instanceConfig) {
|
5417
|
-
this.defaults = instanceConfig;
|
5554
|
+
this.defaults = instanceConfig || {};
|
5418
5555
|
this.interceptors = {
|
5419
5556
|
request: new InterceptorManager(),
|
5420
5557
|
response: new InterceptorManager()
|
@@ -5545,8 +5682,8 @@ let Axios$1 = class Axios {
|
|
5545
5682
|
|
5546
5683
|
if (!synchronousRequestInterceptors) {
|
5547
5684
|
const chain = [dispatchRequest.bind(this), undefined];
|
5548
|
-
chain.unshift
|
5549
|
-
chain.push
|
5685
|
+
chain.unshift(...requestInterceptorChain);
|
5686
|
+
chain.push(...responseInterceptorChain);
|
5550
5687
|
len = chain.length;
|
5551
5688
|
|
5552
5689
|
promise = Promise.resolve(config);
|
@@ -5562,8 +5699,6 @@ let Axios$1 = class Axios {
|
|
5562
5699
|
|
5563
5700
|
let newConfig = config;
|
5564
5701
|
|
5565
|
-
i = 0;
|
5566
|
-
|
5567
5702
|
while (i < len) {
|
5568
5703
|
const onFulfilled = requestInterceptorChain[i++];
|
5569
5704
|
const onRejected = requestInterceptorChain[i++];
|
@@ -7142,7 +7277,7 @@ const LETTERLIKE_SYMBOLS_MAP = {
|
|
7142
7277
|
'℠': '',
|
7143
7278
|
'℡': '',
|
7144
7279
|
'™': '',
|
7145
|
-
|
7280
|
+
℮: '',
|
7146
7281
|
ℯ: '',
|
7147
7282
|
ℰ: '',
|
7148
7283
|
ℱ: '',
|
@@ -7153,7 +7288,7 @@ const LETTERLIKE_SYMBOLS_MAP = {
|
|
7153
7288
|
ℶ: '',
|
7154
7289
|
ℷ: '',
|
7155
7290
|
ℸ: '',
|
7156
|
-
|
7291
|
+
℘: '',
|
7157
7292
|
};
|
7158
7293
|
const CURRENCY_SYMBOLS_MAP = {
|
7159
7294
|
'₠': '',
|
@@ -7396,7 +7531,7 @@ class NormalizeStringHelper {
|
|
7396
7531
|
*/
|
7397
7532
|
removeLeadingZerosIfNumber(text) {
|
7398
7533
|
// If the string is not a number, return it as is
|
7399
|
-
if (isNaN(Number(text))) {
|
7534
|
+
if (Number.isNaN(Number(text))) {
|
7400
7535
|
return text;
|
7401
7536
|
}
|
7402
7537
|
// If the string consists of only zeros, return "0"
|
@@ -7517,7 +7652,7 @@ class ObjectHelper {
|
|
7517
7652
|
if (this.isArray(value)) {
|
7518
7653
|
return this.mergeArrayValues(targetValue, value);
|
7519
7654
|
}
|
7520
|
-
|
7655
|
+
if (typeof value === 'object') {
|
7521
7656
|
return this.mergeObjectValues(targetValue, value);
|
7522
7657
|
}
|
7523
7658
|
return (_a = value !== null && value !== void 0 ? value : targetValue) !== null && _a !== void 0 ? _a : undefined;
|
@@ -7875,7 +8010,11 @@ function getAugmentedNamespace(n) {
|
|
7875
8010
|
var f = n.default;
|
7876
8011
|
if (typeof f == "function") {
|
7877
8012
|
var a = function a () {
|
7878
|
-
|
8013
|
+
var isInstance = false;
|
8014
|
+
try {
|
8015
|
+
isInstance = this instanceof a;
|
8016
|
+
} catch {}
|
8017
|
+
if (isInstance) {
|
7879
8018
|
return Reflect.construct(f, arguments, this.constructor);
|
7880
8019
|
}
|
7881
8020
|
return f.apply(this, arguments);
|
@@ -16628,8 +16767,7 @@ class ApiError {
|
|
16628
16767
|
var _a, _b, _c, _d, _e, _f, _g;
|
16629
16768
|
const e = error;
|
16630
16769
|
this.cause = (_d = (_b = (_a = e === null || e === void 0 ? void 0 : e.response) === null || _a === void 0 ? void 0 : _a.data.statusCode) !== null && _b !== void 0 ? _b : (_c = e === null || e === void 0 ? void 0 : e.response) === null || _c === void 0 ? void 0 : _c.status) !== null && _d !== void 0 ? _d : 0;
|
16631
|
-
this.errorMessage =
|
16632
|
-
(_g = (_f = (_e = e === null || e === void 0 ? void 0 : e.response) === null || _e === void 0 ? void 0 : _e.data.message) !== null && _f !== void 0 ? _f : e === null || e === void 0 ? void 0 : e.message) !== null && _g !== void 0 ? _g : `There's been an error related to the API request to LiquidCommerce RMN Services.`;
|
16770
|
+
this.errorMessage = (_g = (_f = (_e = e === null || e === void 0 ? void 0 : e.response) === null || _e === void 0 ? void 0 : _e.data.message) !== null && _f !== void 0 ? _f : e === null || e === void 0 ? void 0 : e.message) !== null && _g !== void 0 ? _g : `There's been an error related to the API request to LiquidCommerce RMN Services.`;
|
16633
16771
|
}
|
16634
16772
|
}
|
16635
16773
|
|
@@ -16718,10 +16856,7 @@ class EncryptedApi {
|
|
16718
16856
|
async joseEncrypt(data, key, exp) {
|
16719
16857
|
// Encode and sign data
|
16720
16858
|
const currentDate = new Date();
|
16721
|
-
const token = new SignJWT(data)
|
16722
|
-
.setProtectedHeader({ alg: 'HS256' })
|
16723
|
-
.setIssuedAt(currentDate.getTime())
|
16724
|
-
.setExpirationTime(exp);
|
16859
|
+
const token = new SignJWT(data).setProtectedHeader({ alg: 'HS256' }).setIssuedAt(currentDate.getTime()).setExpirationTime(exp);
|
16725
16860
|
const signedToken = await token.sign(Buffer.from(key));
|
16726
16861
|
// Encrypt and format payload
|
16727
16862
|
return cryptoJsExports.AES.encrypt(signedToken, key).toString();
|
@@ -16759,6 +16894,7 @@ class BaseApi extends BaseApiAbstract {
|
|
16759
16894
|
});
|
16760
16895
|
}
|
16761
16896
|
getPartnerSite() {
|
16897
|
+
// biome-ignore lint/complexity/useOptionalChain: Type guard required before property access
|
16762
16898
|
if (typeof window !== 'undefined' && window.location) {
|
16763
16899
|
return window.location.origin;
|
16764
16900
|
}
|
@@ -16801,6 +16937,7 @@ class BaseApi extends BaseApiAbstract {
|
|
16801
16937
|
async post(path, data, configOverrides) {
|
16802
16938
|
let requestData = data;
|
16803
16939
|
if (![RMN_ENV.LOCAL, RMN_ENV.DEVELOPMENT].includes(this.authInfo.env)) {
|
16940
|
+
// biome-ignore lint/complexity/useDateNow: Timestamp needed for authentication headers
|
16804
16941
|
const timestamp = new Date().getTime();
|
16805
16942
|
configOverrides = {
|
16806
16943
|
...configOverrides,
|
@@ -16869,20 +17006,17 @@ class BaseApi extends BaseApiAbstract {
|
|
16869
17006
|
let responseData = (response === null || response === void 0 ? void 0 : response.data) ? response.data : null;
|
16870
17007
|
let isEncrypted = false;
|
16871
17008
|
let timestamp = 0;
|
16872
|
-
if (
|
17009
|
+
if (
|
17010
|
+
// biome-ignore lint/complexity/useOptionalChain: Explicit null checks preferred for readability
|
17011
|
+
(response === null || response === void 0 ? void 0 : response.headers) &&
|
16873
17012
|
((_a = response === null || response === void 0 ? void 0 : response.headers) === null || _a === void 0 ? void 0 : _a.has) &&
|
16874
17013
|
((_b = response === null || response === void 0 ? void 0 : response.headers) === null || _b === void 0 ? void 0 : _b.has(REQUEST_CLOUD_PROTECTED_KEY)) &&
|
16875
17014
|
((_c = response === null || response === void 0 ? void 0 : response.headers) === null || _c === void 0 ? void 0 : _c.has(REQUEST_CLOUD_PROTECTED_TIMESTAMP)) &&
|
16876
17015
|
((_d = response === null || response === void 0 ? void 0 : response.headers) === null || _d === void 0 ? void 0 : _d.get)) {
|
16877
17016
|
isEncrypted = ((_e = response === null || response === void 0 ? void 0 : response.headers) === null || _e === void 0 ? void 0 : _e.get(REQUEST_CLOUD_PROTECTED_KEY)) === 'true';
|
16878
|
-
timestamp = ((_f = response === null || response === void 0 ? void 0 : response.headers) === null || _f === void 0 ? void 0 : _f.get(REQUEST_CLOUD_PROTECTED_TIMESTAMP))
|
16879
|
-
|
16880
|
-
|
16881
|
-
}
|
16882
|
-
if (responseData &&
|
16883
|
-
isEncrypted &&
|
16884
|
-
this.objectHelper.includes(responseData, 't') &&
|
16885
|
-
timestamp > 0) {
|
17017
|
+
timestamp = ((_f = response === null || response === void 0 ? void 0 : response.headers) === null || _f === void 0 ? void 0 : _f.get(REQUEST_CLOUD_PROTECTED_TIMESTAMP)) ? Number((_g = response === null || response === void 0 ? void 0 : response.headers) === null || _g === void 0 ? void 0 : _g.get(REQUEST_CLOUD_PROTECTED_TIMESTAMP)) : 0;
|
17018
|
+
}
|
17019
|
+
if (responseData && isEncrypted && this.objectHelper.includes(responseData, 't') && timestamp > 0) {
|
16886
17020
|
const { t: encryptedPayload } = responseData;
|
16887
17021
|
const decryptedData = await this.encryptedApi.handleDecryption(encryptedPayload, timestamp);
|
16888
17022
|
if (decryptedData === null || decryptedData === void 0 ? void 0 : decryptedData.payload) {
|
@@ -16971,6 +17105,8 @@ const SPOT_DIMENSIONS = {
|
|
16971
17105
|
[RMN_SPOT_TYPE.RB_VIDEO_PLAYER]: { width: 1280, height: 720 },
|
16972
17106
|
[RMN_SPOT_TYPE.RB_IN_TEXT]: { width: 1, height: 1 },
|
16973
17107
|
[RMN_SPOT_TYPE.RB_CAROUSEL_HORIZONTAL_INFO_CARD]: { width: 592, height: 386 },
|
17108
|
+
[RMN_SPOT_TYPE.RB_CAROUSEL_VERTICAL_SMALL_IMAGE_INFO_CARD]: { width: 285, height: 386 },
|
17109
|
+
[RMN_SPOT_TYPE.RB_CAROUSEL_HORIZONTAL_SHORT_INFO_CARD]: { width: 285, height: 416 },
|
16974
17110
|
[RMN_SPOT_TYPE.SMALL_RECTANGLE]: { width: 180, height: 150 },
|
16975
17111
|
[RMN_SPOT_TYPE.MEDIUM_RECTANGLE]: { width: 300, height: 250 },
|
16976
17112
|
[RMN_SPOT_TYPE.LARGE_RECTANGLE]: { width: 336, height: 280 },
|
@@ -17039,9 +17175,7 @@ class BaseSpotComponent extends BaseElement {
|
|
17039
17175
|
if (!this.initialized || !this.dataInitialized || !isBrowser) {
|
17040
17176
|
return;
|
17041
17177
|
}
|
17042
|
-
this._container = this._config.useShadowDom
|
17043
|
-
? this.shadowRoot || this.attachShadow({ mode: 'open' })
|
17044
|
-
: this;
|
17178
|
+
this._container = this._config.useShadowDom ? this.shadowRoot || this.attachShadow({ mode: 'open' }) : this;
|
17045
17179
|
this._container.innerHTML = '';
|
17046
17180
|
const style = document.createElement('style');
|
17047
17181
|
style.textContent = this.baseStyles() + this.styles();
|
@@ -17240,10 +17374,7 @@ class LocalStorageService {
|
|
17240
17374
|
const decryptedData = this.decryptData(localStorageData);
|
17241
17375
|
const parsedData = JSON.parse(decryptedData);
|
17242
17376
|
if (Array.isArray(parsedData)) {
|
17243
|
-
const data = Object.fromEntries(parsedData.map((spot) => [
|
17244
|
-
spot[ENUM_SPOT_ARRAY_INDEX.SPOT_ID],
|
17245
|
-
this.spotArrayToObject(spot),
|
17246
|
-
]));
|
17377
|
+
const data = Object.fromEntries(parsedData.map((spot) => [spot[ENUM_SPOT_ARRAY_INDEX.SPOT_ID], this.spotArrayToObject(spot)]));
|
17247
17378
|
this.spots = this.objectToMap(data);
|
17248
17379
|
}
|
17249
17380
|
else {
|
@@ -17259,7 +17390,7 @@ class LocalStorageService {
|
|
17259
17390
|
updateLocalStorage() {
|
17260
17391
|
var _a;
|
17261
17392
|
if (!this.spots)
|
17262
|
-
return
|
17393
|
+
return;
|
17263
17394
|
const spotsObj = this.mapToObject(this.spots);
|
17264
17395
|
const data = Object.values(spotsObj).map((spot) => this.spotObjectToArray(spot));
|
17265
17396
|
try {
|
@@ -17697,9 +17828,9 @@ function convertHexToRgba(hex, opacity = 1) {
|
|
17697
17828
|
// Remove # if present
|
17698
17829
|
const cleanHex = hex.replace('#', '');
|
17699
17830
|
// Convert hex to RGB
|
17700
|
-
const r = parseInt(cleanHex.substring(0, 2), 16);
|
17701
|
-
const g = parseInt(cleanHex.substring(2, 4), 16);
|
17702
|
-
const b = parseInt(cleanHex.substring(4, 6), 16);
|
17831
|
+
const r = Number.parseInt(cleanHex.substring(0, 2), 16);
|
17832
|
+
const g = Number.parseInt(cleanHex.substring(2, 4), 16);
|
17833
|
+
const b = Number.parseInt(cleanHex.substring(4, 6), 16);
|
17703
17834
|
// Return rgba string
|
17704
17835
|
return `rgba(${r}, ${g}, ${b}, ${opacity})`;
|
17705
17836
|
}
|
@@ -17727,10 +17858,7 @@ function generateGradientColor(overlay, fallback = '') {
|
|
17727
17858
|
}
|
17728
17859
|
function importFonts(...fonts) {
|
17729
17860
|
const fontsToImport = fonts.length === 0 ? ['sourceSans', 'cormorant'] : fonts;
|
17730
|
-
return [
|
17731
|
-
FONTS.preconnect,
|
17732
|
-
...fontsToImport.map((font) => FONTS[font]),
|
17733
|
-
].join('');
|
17861
|
+
return [FONTS.preconnect, ...fontsToImport.map((font) => FONTS[font])].join('');
|
17734
17862
|
}
|
17735
17863
|
function renderElement(tag, className, content) {
|
17736
17864
|
return (content === null || content === void 0 ? void 0 : content.trim()) ? `<${tag} class="${className}">${content}</${tag}>` : '';
|
@@ -17777,7 +17905,7 @@ class BillboardV1SE extends BaseSpotComponent {
|
|
17777
17905
|
elements.forEach((element) => {
|
17778
17906
|
if (element instanceof HTMLElement) {
|
17779
17907
|
if (!this.originalFontSizes.has(element)) {
|
17780
|
-
const originalSize = parseFloat(window.getComputedStyle(element).fontSize);
|
17908
|
+
const originalSize = Number.parseFloat(window.getComputedStyle(element).fontSize);
|
17781
17909
|
this.originalFontSizes.set(element, originalSize);
|
17782
17910
|
}
|
17783
17911
|
const originalSize = this.originalFontSizes.get(element);
|
@@ -17988,7 +18116,7 @@ class RbCarouselHorizontalInfoCardSE extends BaseSpotComponent {
|
|
17988
18116
|
`;
|
17989
18117
|
}
|
17990
18118
|
styles() {
|
17991
|
-
const { headerColor = '#212121', textColor = '#616161', backgroundColor = '#
|
18119
|
+
const { headerColor = '#212121', textColor = '#616161', backgroundColor = '#f7f5f3', ctaTextColor = '#b5914a', primaryImage, mobilePrimaryImage = primaryImage, } = this._data;
|
17992
18120
|
const prefix = this._config.prefix;
|
17993
18121
|
return `
|
17994
18122
|
.${prefix} {
|
@@ -18040,8 +18168,7 @@ class RbCarouselHorizontalInfoCardSE extends BaseSpotComponent {
|
|
18040
18168
|
margin: 0;
|
18041
18169
|
color:${headerColor};
|
18042
18170
|
font-family: "Cormorant", system-ui;
|
18043
|
-
font-
|
18044
|
-
font-size: 8px;
|
18171
|
+
font-size: ${this._isMobileDevice ? '8px' : '9px'};
|
18045
18172
|
line-height: normal;
|
18046
18173
|
letter-spacing: 0.8px;
|
18047
18174
|
}
|
@@ -18051,7 +18178,7 @@ class RbCarouselHorizontalInfoCardSE extends BaseSpotComponent {
|
|
18051
18178
|
color: ${headerColor};
|
18052
18179
|
font-family: "Cormorant", system-ui;
|
18053
18180
|
font-weight: bold;
|
18054
|
-
font-size: 16px;
|
18181
|
+
font-size: ${this._isMobileDevice ? '16px' : '18px'};
|
18055
18182
|
line-height: 24px;
|
18056
18183
|
position: relative;
|
18057
18184
|
padding-bottom: 10px;
|
@@ -18078,10 +18205,9 @@ class RbCarouselHorizontalInfoCardSE extends BaseSpotComponent {
|
|
18078
18205
|
|
18079
18206
|
.${prefix}__cta-button {
|
18080
18207
|
color: ${ctaTextColor};
|
18081
|
-
font-size: 10px;
|
18208
|
+
font-size: ${this._isMobileDevice ? '10px' : '12px'};
|
18082
18209
|
font-weight: 700;
|
18083
18210
|
font-family: "Source Sans 3", system-ui;
|
18084
|
-
letter-spacing: 1.4px;
|
18085
18211
|
border: none;
|
18086
18212
|
cursor: pointer;
|
18087
18213
|
padding: 10px 0;
|
@@ -18157,19 +18283,12 @@ class RbCarouselHorizontalInfoCardSE extends BaseSpotComponent {
|
|
18157
18283
|
font-size: 14px;
|
18158
18284
|
}
|
18159
18285
|
|
18160
|
-
.${prefix}__cta-button {
|
18161
|
-
font-size: 13px;
|
18162
|
-
}
|
18163
18286
|
}
|
18164
18287
|
|
18165
18288
|
@container (min-width: 1280px) {
|
18166
18289
|
.${prefix}__header {
|
18167
18290
|
font-size: 24px;
|
18168
18291
|
}
|
18169
|
-
|
18170
|
-
.${prefix}__cta-button {
|
18171
|
-
font-size: 14px;
|
18172
|
-
}
|
18173
18292
|
}
|
18174
18293
|
`;
|
18175
18294
|
}
|
@@ -18179,7 +18298,409 @@ class RbCarouselHorizontalInfoCardSE extends BaseSpotComponent {
|
|
18179
18298
|
enableMobileTexts = true, } = this._data;
|
18180
18299
|
const content = this._isMobileDevice && enableMobileTexts
|
18181
18300
|
? {
|
18182
|
-
|
18301
|
+
preHeader: mobilePreHeader,
|
18302
|
+
header: mobileHeader,
|
18303
|
+
description: mobileDescription,
|
18304
|
+
ctaText: mobileCtaText,
|
18305
|
+
}
|
18306
|
+
: { preHeader, header, description, ctaText };
|
18307
|
+
return Object.values(content).some(Boolean);
|
18308
|
+
}
|
18309
|
+
}
|
18310
|
+
|
18311
|
+
class RbCarouselHorizontalShortInfoCardSE extends BaseSpotComponent {
|
18312
|
+
constructor() {
|
18313
|
+
super();
|
18314
|
+
this.reRenderOnDeviceChange = true;
|
18315
|
+
}
|
18316
|
+
template() {
|
18317
|
+
const prefix = this._config.prefix;
|
18318
|
+
const { preHeader, mobilePreHeader, header, mobileHeader, description, mobileDescription, ctaText, mobileCtaText, textBlockPosition = ENUM_TEXT_BLOCK_POSITION.BOTTOM,
|
18319
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
18320
|
+
enableMobileTexts = true, } = this._data;
|
18321
|
+
const content = this._isMobileDevice && enableMobileTexts
|
18322
|
+
? {
|
18323
|
+
preHeader: mobilePreHeader,
|
18324
|
+
header: mobileHeader,
|
18325
|
+
description: mobileDescription,
|
18326
|
+
ctaText: mobileCtaText,
|
18327
|
+
}
|
18328
|
+
: { preHeader, header, description, ctaText };
|
18329
|
+
const elements = this.hasContent
|
18330
|
+
? [
|
18331
|
+
renderElement('p', `${prefix}__preHeader`, content.preHeader),
|
18332
|
+
renderElement('h2', `${prefix}__header`, content.header),
|
18333
|
+
renderElement('p', `${prefix}__description`, content.description),
|
18334
|
+
renderElement('span', `${prefix}__cta-button`, content.ctaText),
|
18335
|
+
]
|
18336
|
+
: [];
|
18337
|
+
return `
|
18338
|
+
${importFonts()}
|
18339
|
+
<div class="${prefix}">
|
18340
|
+
<div class="${prefix}__content ${prefix}__text-block--${textBlockPosition} ${prefix}__text-block-mobile--${textBlockPosition}">
|
18341
|
+
<div class="${prefix}__image"></div>
|
18342
|
+
<div class="${prefix}__text">
|
18343
|
+
<div class="${prefix}__text-container">
|
18344
|
+
${elements.join('')}
|
18345
|
+
</div>
|
18346
|
+
</div>
|
18347
|
+
</div>
|
18348
|
+
</div>
|
18349
|
+
`;
|
18350
|
+
}
|
18351
|
+
styles() {
|
18352
|
+
const { headerColor = '#212121', textColor = '#616161', backgroundColor = '#f7f5f3', ctaTextColor = '#b5914a', primaryImage, mobilePrimaryImage = primaryImage, } = this._data;
|
18353
|
+
const prefix = this._config.prefix;
|
18354
|
+
return `
|
18355
|
+
.${prefix} {
|
18356
|
+
width: 100%;
|
18357
|
+
height: 100%;
|
18358
|
+
position: relative;
|
18359
|
+
border-radius: 5px;
|
18360
|
+
}
|
18361
|
+
|
18362
|
+
.${prefix}__content {
|
18363
|
+
width: 100%;
|
18364
|
+
height: 100%;
|
18365
|
+
display: flex;
|
18366
|
+
flex-direction: column;
|
18367
|
+
overflow: hidden;
|
18368
|
+
border-radius: 5px;
|
18369
|
+
}
|
18370
|
+
|
18371
|
+
.${prefix}__image {
|
18372
|
+
width: 100%;
|
18373
|
+
height: 62.5%;
|
18374
|
+
background-image: url("${this._isMobileDevice ? mobilePrimaryImage : primaryImage}");
|
18375
|
+
background-position: center;
|
18376
|
+
background-repeat: no-repeat;
|
18377
|
+
background-size: cover;
|
18378
|
+
min-width: 100px;
|
18379
|
+
overflow: hidden;
|
18380
|
+
}
|
18381
|
+
|
18382
|
+
.${prefix}__text {
|
18383
|
+
background-color: ${backgroundColor};
|
18384
|
+
display: flex;
|
18385
|
+
flex-direction: column;
|
18386
|
+
justify-content: center;
|
18387
|
+
width: 100%;
|
18388
|
+
height: 37.5%;
|
18389
|
+
padding: 15px;
|
18390
|
+
box-sizing: border-box;
|
18391
|
+
}
|
18392
|
+
|
18393
|
+
.${prefix}__text-container {
|
18394
|
+
display: flex;
|
18395
|
+
flex-direction: column;
|
18396
|
+
gap: 5px;
|
18397
|
+
}
|
18398
|
+
|
18399
|
+
.${prefix}__preHeader {
|
18400
|
+
margin: 0;
|
18401
|
+
color:${headerColor};
|
18402
|
+
font-family: "Cormorant", system-ui;
|
18403
|
+
font-size: ${this._isMobileDevice ? '8px' : '9px'};
|
18404
|
+
line-height: normal;
|
18405
|
+
letter-spacing: 0.8px;
|
18406
|
+
}
|
18407
|
+
|
18408
|
+
.${prefix}__header {
|
18409
|
+
margin: 0;
|
18410
|
+
color: ${headerColor};
|
18411
|
+
font-family: "Cormorant", system-ui;
|
18412
|
+
font-weight: bold;
|
18413
|
+
font-size: ${this._isMobileDevice ? '16px' : '18px'};
|
18414
|
+
line-height: 24px;
|
18415
|
+
position: relative;
|
18416
|
+
padding-bottom: 10px;
|
18417
|
+
margin-bottom: 5px;
|
18418
|
+
}
|
18419
|
+
|
18420
|
+
.${prefix}__header::after {
|
18421
|
+
content: '';
|
18422
|
+
position: absolute;
|
18423
|
+
bottom: 0;
|
18424
|
+
left: 0;
|
18425
|
+
width: 76px;
|
18426
|
+
height: 1px;
|
18427
|
+
background-color: ${ctaTextColor};
|
18428
|
+
}
|
18429
|
+
|
18430
|
+
.${prefix}__description {
|
18431
|
+
color: ${textColor};
|
18432
|
+
margin: 0;
|
18433
|
+
font-size: 10px;
|
18434
|
+
font-family: "Source Sans 3", system-ui;
|
18435
|
+
font-weight: 400;
|
18436
|
+
}
|
18437
|
+
|
18438
|
+
.${prefix}__cta-button {
|
18439
|
+
color: ${ctaTextColor};
|
18440
|
+
font-size: ${this._isMobileDevice ? '10px' : '12px'};
|
18441
|
+
font-weight: 700;
|
18442
|
+
font-family: "Source Sans 3", system-ui;
|
18443
|
+
border: none;
|
18444
|
+
cursor: pointer;
|
18445
|
+
transition: opacity 0.3s ease;
|
18446
|
+
display: inline-block;
|
18447
|
+
align-self: flex-end;
|
18448
|
+
text-decoration: none;
|
18449
|
+
margin-top: auto;
|
18450
|
+
}
|
18451
|
+
|
18452
|
+
.${prefix}__content:hover .${prefix}__cta-button {
|
18453
|
+
opacity: 0.8;
|
18454
|
+
}
|
18455
|
+
|
18456
|
+
@container (min-width: 768px) {
|
18457
|
+
.${prefix}__preHeader {
|
18458
|
+
font-size: 9px;
|
18459
|
+
}
|
18460
|
+
|
18461
|
+
.${prefix}__cta-button {
|
18462
|
+
font-size: 12px;
|
18463
|
+
}
|
18464
|
+
}
|
18465
|
+
|
18466
|
+
@container (min-width: 1024px) {
|
18467
|
+
.${prefix}__text {
|
18468
|
+
padding: 20px;
|
18469
|
+
}
|
18470
|
+
|
18471
|
+
.${prefix}__text-container {
|
18472
|
+
padding-right: 20px;
|
18473
|
+
}
|
18474
|
+
|
18475
|
+
.${prefix}__preHeader {
|
18476
|
+
font-size: 10px;
|
18477
|
+
}
|
18478
|
+
|
18479
|
+
.${prefix}__header {
|
18480
|
+
font-size: 18px;
|
18481
|
+
}
|
18482
|
+
|
18483
|
+
.${prefix}__description {
|
18484
|
+
font-size: 14px;
|
18485
|
+
}
|
18486
|
+
}
|
18487
|
+
|
18488
|
+
@container (min-width: 1280px) {
|
18489
|
+
.${prefix}__header {
|
18490
|
+
font-size: 24px;
|
18491
|
+
}
|
18492
|
+
}
|
18493
|
+
`;
|
18494
|
+
}
|
18495
|
+
get hasContent() {
|
18496
|
+
const { preHeader, mobilePreHeader, header, mobileHeader, description, mobileDescription, ctaText, mobileCtaText,
|
18497
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
18498
|
+
enableMobileTexts = true, } = this._data;
|
18499
|
+
const content = this._isMobileDevice && enableMobileTexts
|
18500
|
+
? {
|
18501
|
+
preHeader: mobilePreHeader,
|
18502
|
+
header: mobileHeader,
|
18503
|
+
description: mobileDescription,
|
18504
|
+
ctaText: mobileCtaText,
|
18505
|
+
}
|
18506
|
+
: { preHeader, header, description, ctaText };
|
18507
|
+
return Object.values(content).some(Boolean);
|
18508
|
+
}
|
18509
|
+
}
|
18510
|
+
|
18511
|
+
class RbCarouselVerticalSmallImageInfoCardSE extends BaseSpotComponent {
|
18512
|
+
constructor() {
|
18513
|
+
super();
|
18514
|
+
this.reRenderOnDeviceChange = true;
|
18515
|
+
}
|
18516
|
+
template() {
|
18517
|
+
const prefix = this._config.prefix;
|
18518
|
+
const { preHeader, mobilePreHeader, header, mobileHeader, description, mobileDescription, ctaText, mobileCtaText, textBlockPosition = ENUM_TEXT_BLOCK_POSITION.BOTTOM,
|
18519
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
18520
|
+
enableMobileTexts = true, } = this._data;
|
18521
|
+
const content = this._isMobileDevice && enableMobileTexts
|
18522
|
+
? {
|
18523
|
+
preHeader: mobilePreHeader,
|
18524
|
+
header: mobileHeader,
|
18525
|
+
description: mobileDescription,
|
18526
|
+
ctaText: mobileCtaText,
|
18527
|
+
}
|
18528
|
+
: { preHeader, header, description, ctaText };
|
18529
|
+
const elements = this.hasContent
|
18530
|
+
? [
|
18531
|
+
renderElement('p', `${prefix}__preHeader`, content.preHeader),
|
18532
|
+
renderElement('h2', `${prefix}__header`, content.header),
|
18533
|
+
renderElement('p', `${prefix}__description`, content.description),
|
18534
|
+
renderElement('span', `${prefix}__cta-button`, content.ctaText),
|
18535
|
+
]
|
18536
|
+
: [];
|
18537
|
+
return `
|
18538
|
+
${importFonts()}
|
18539
|
+
<div class="${prefix}">
|
18540
|
+
<div class="${prefix}__content ${prefix}__text-block--${textBlockPosition} ${prefix}__text-block-mobile--${textBlockPosition}">
|
18541
|
+
<div class="${prefix}__image"></div>
|
18542
|
+
<div class="${prefix}__text">
|
18543
|
+
<div class="${prefix}__text-container">
|
18544
|
+
${elements.join('')}
|
18545
|
+
</div>
|
18546
|
+
</div>
|
18547
|
+
</div>
|
18548
|
+
</div>
|
18549
|
+
`;
|
18550
|
+
}
|
18551
|
+
styles() {
|
18552
|
+
const { headerColor = '#212121', textColor = '#616161', backgroundColor = '#f7f5f3', ctaTextColor = '#b5914a', primaryImage, mobilePrimaryImage = primaryImage, } = this._data;
|
18553
|
+
const prefix = this._config.prefix;
|
18554
|
+
return `
|
18555
|
+
.${prefix} {
|
18556
|
+
width: 100%;
|
18557
|
+
height: 100%;
|
18558
|
+
position: relative;
|
18559
|
+
border-radius: 5px;
|
18560
|
+
}
|
18561
|
+
|
18562
|
+
.${prefix}__content {
|
18563
|
+
width: 100%;
|
18564
|
+
height: 100%;
|
18565
|
+
display: flex;
|
18566
|
+
flex-direction: column;
|
18567
|
+
overflow: hidden;
|
18568
|
+
border-radius: 5px;
|
18569
|
+
}
|
18570
|
+
|
18571
|
+
.${prefix}__image {
|
18572
|
+
width: 100%;
|
18573
|
+
height: 50%;
|
18574
|
+
background-image: url("${this._isMobileDevice ? mobilePrimaryImage : primaryImage}");
|
18575
|
+
background-position: center;
|
18576
|
+
background-repeat: no-repeat;
|
18577
|
+
background-size: cover;
|
18578
|
+
min-width: 100px;
|
18579
|
+
overflow: hidden;
|
18580
|
+
}
|
18581
|
+
|
18582
|
+
.${prefix}__text {
|
18583
|
+
background-color: ${backgroundColor};
|
18584
|
+
display: flex;
|
18585
|
+
flex-direction: column;
|
18586
|
+
justify-content: center;
|
18587
|
+
width: 100%;
|
18588
|
+
height: 50%;
|
18589
|
+
padding: 16px;
|
18590
|
+
box-sizing: border-box;
|
18591
|
+
}
|
18592
|
+
|
18593
|
+
.${prefix}__text-container {
|
18594
|
+
display: flex;
|
18595
|
+
flex-direction: column;
|
18596
|
+
gap: 5px;
|
18597
|
+
height: 100%;
|
18598
|
+
justify-content: space-between;
|
18599
|
+
}
|
18600
|
+
|
18601
|
+
.${prefix}__preHeader {
|
18602
|
+
margin: 0;
|
18603
|
+
color:${headerColor};
|
18604
|
+
font-family: "Cormorant", system-ui;
|
18605
|
+
font-size: ${this._isMobileDevice ? '8px' : '9px'};
|
18606
|
+
line-height: normal;
|
18607
|
+
letter-spacing: 0.8px;
|
18608
|
+
}
|
18609
|
+
|
18610
|
+
.${prefix}__header {
|
18611
|
+
margin: 0;
|
18612
|
+
color: ${headerColor};
|
18613
|
+
font-family: "Cormorant", system-ui;
|
18614
|
+
font-weight: bold;
|
18615
|
+
font-size: ${this._isMobileDevice ? '16px' : '18px'};
|
18616
|
+
line-height: 24px;
|
18617
|
+
position: relative;
|
18618
|
+
padding-bottom: 10px;
|
18619
|
+
margin-bottom: 5px;
|
18620
|
+
}
|
18621
|
+
|
18622
|
+
.${prefix}__header::after {
|
18623
|
+
content: '';
|
18624
|
+
position: absolute;
|
18625
|
+
bottom: 0;
|
18626
|
+
left: 0;
|
18627
|
+
width: 76px;
|
18628
|
+
height: 1px;
|
18629
|
+
background-color: ${ctaTextColor};
|
18630
|
+
}
|
18631
|
+
|
18632
|
+
.${prefix}__description {
|
18633
|
+
color: ${textColor};
|
18634
|
+
margin: 0;
|
18635
|
+
font-size: 10px;
|
18636
|
+
font-family: "Source Sans 3", system-ui;
|
18637
|
+
font-weight: 400;
|
18638
|
+
}
|
18639
|
+
|
18640
|
+
.${prefix}__cta-button {
|
18641
|
+
color: ${ctaTextColor};
|
18642
|
+
font-size: ${this._isMobileDevice ? '10px' : '12px'};
|
18643
|
+
font-weight: 700;
|
18644
|
+
font-family: "Source Sans 3", system-ui;
|
18645
|
+
border: none;
|
18646
|
+
cursor: pointer;
|
18647
|
+
transition: opacity 0.3s ease;
|
18648
|
+
display: inline-block;
|
18649
|
+
align-self: flex-end;
|
18650
|
+
text-decoration: none;
|
18651
|
+
margin-top: auto;
|
18652
|
+
}
|
18653
|
+
|
18654
|
+
.${prefix}__content:hover .${prefix}__cta-button {
|
18655
|
+
opacity: 0.8;
|
18656
|
+
}
|
18657
|
+
|
18658
|
+
@container (min-width: 768px) {
|
18659
|
+
.${prefix}__preHeader {
|
18660
|
+
font-size: 9px;
|
18661
|
+
}
|
18662
|
+
|
18663
|
+
.${prefix}__cta-button {
|
18664
|
+
font-size: 12px;
|
18665
|
+
}
|
18666
|
+
}
|
18667
|
+
|
18668
|
+
@container (min-width: 1024px) {
|
18669
|
+
.${prefix}__text {
|
18670
|
+
padding: 20px;
|
18671
|
+
}
|
18672
|
+
|
18673
|
+
.${prefix}__text-container {
|
18674
|
+
padding-right: 20px;
|
18675
|
+
}
|
18676
|
+
|
18677
|
+
.${prefix}__preHeader {
|
18678
|
+
font-size: 10px;
|
18679
|
+
}
|
18680
|
+
|
18681
|
+
.${prefix}__header {
|
18682
|
+
font-size: 18px;
|
18683
|
+
}
|
18684
|
+
|
18685
|
+
.${prefix}__description {
|
18686
|
+
font-size: 14px;
|
18687
|
+
}
|
18688
|
+
}
|
18689
|
+
|
18690
|
+
@container (min-width: 1280px) {
|
18691
|
+
.${prefix}__header {
|
18692
|
+
font-size: 24px;
|
18693
|
+
}
|
18694
|
+
}
|
18695
|
+
`;
|
18696
|
+
}
|
18697
|
+
get hasContent() {
|
18698
|
+
const { preHeader, mobilePreHeader, header, mobileHeader, description, mobileDescription, ctaText, mobileCtaText,
|
18699
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
18700
|
+
enableMobileTexts = true, } = this._data;
|
18701
|
+
const content = this._isMobileDevice && enableMobileTexts
|
18702
|
+
? {
|
18703
|
+
preHeader: mobilePreHeader,
|
18183
18704
|
header: mobileHeader,
|
18184
18705
|
description: mobileDescription,
|
18185
18706
|
ctaText: mobileCtaText,
|
@@ -18279,20 +18800,26 @@ class RbHomepageHeroFullImageSE extends BaseSpotComponent {
|
|
18279
18800
|
`;
|
18280
18801
|
}
|
18281
18802
|
styles() {
|
18282
|
-
const { textBlockPosition = ENUM_TEXT_BLOCK_POSITION.BOTTOM_LEFT, mobileTextBlockPosition = textBlockPosition, } = this._data;
|
18803
|
+
const { textBlockPosition = ENUM_TEXT_BLOCK_POSITION.BOTTOM_LEFT, mobileTextBlockPosition = textBlockPosition, showContentGradient = true, } = this._data;
|
18283
18804
|
const desktopGradientDirection = this.getGradientDirection(textBlockPosition);
|
18284
18805
|
const mobileGradientDirection = this.getGradientDirection(mobileTextBlockPosition);
|
18285
18806
|
const linearGradient = generateGradientColor(this._config.overlay, 'rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 40%');
|
18286
18807
|
const { textColor = '#ffffff', ctaTextColor = textColor, ctaBorderColor = ctaTextColor, primaryImage, mobilePrimaryImage = primaryImage, } = this._data;
|
18287
18808
|
const prefix = this._config.prefix;
|
18809
|
+
// Determine mobile background image based on hasContent and enableGradient
|
18810
|
+
const mobileBackgroundImage = this.hasContent && showContentGradient
|
18811
|
+
? `background-image: linear-gradient(${mobileGradientDirection}, ${linearGradient}), url("${mobilePrimaryImage}");`
|
18812
|
+
: `background-image: url("${mobilePrimaryImage}");`;
|
18813
|
+
// Determine desktop background image based on hasContent and enableGradient
|
18814
|
+
const desktopBackgroundImage = this.hasContent && showContentGradient
|
18815
|
+
? `background-image: linear-gradient(${desktopGradientDirection}, ${linearGradient}), url("${primaryImage}");`
|
18816
|
+
: `background-image: url("${primaryImage}");`;
|
18288
18817
|
return `
|
18289
18818
|
.${prefix} {
|
18290
18819
|
display: flex;
|
18291
18820
|
width: 100%;
|
18292
18821
|
height: 100%;
|
18293
|
-
${
|
18294
|
-
? `background-image: linear-gradient(${mobileGradientDirection}, ${linearGradient}), url("${mobilePrimaryImage}");`
|
18295
|
-
: `background-image: url("${mobilePrimaryImage}");`}
|
18822
|
+
${mobileBackgroundImage}
|
18296
18823
|
background-size: cover;
|
18297
18824
|
background-repeat: no-repeat;
|
18298
18825
|
background-position: center;
|
@@ -18411,9 +18938,7 @@ class RbHomepageHeroFullImageSE extends BaseSpotComponent {
|
|
18411
18938
|
|
18412
18939
|
@container (min-width: 640px) {
|
18413
18940
|
.${prefix} {
|
18414
|
-
${
|
18415
|
-
? `background-image: linear-gradient(${desktopGradientDirection}, ${linearGradient}), url("${primaryImage}");`
|
18416
|
-
: `background-image: url("${primaryImage}");`}
|
18941
|
+
${desktopBackgroundImage}
|
18417
18942
|
}
|
18418
18943
|
|
18419
18944
|
.${prefix}__text > * {
|
@@ -19000,13 +19525,13 @@ class RbInTextSE extends BaseSpotComponent {
|
|
19000
19525
|
`;
|
19001
19526
|
}
|
19002
19527
|
styles() {
|
19003
|
-
const { textColor = '#212121', backgroundColor = 'transparent' } = this._data;
|
19528
|
+
const { textColor = '#212121', backgroundColor = 'transparent', textBlockPosition = ENUM_TEXT_BLOCK_POSITION.LEFT } = this._data;
|
19004
19529
|
const prefix = this._config.prefix;
|
19005
19530
|
return `
|
19006
19531
|
.${prefix} {
|
19007
19532
|
display: block;
|
19008
19533
|
cursor: pointer;
|
19009
|
-
|
19534
|
+
width: 100%;
|
19010
19535
|
padding: 0;
|
19011
19536
|
background-color: ${backgroundColor};
|
19012
19537
|
}
|
@@ -19017,6 +19542,7 @@ class RbInTextSE extends BaseSpotComponent {
|
|
19017
19542
|
color: ${textColor};
|
19018
19543
|
font-family: "Source Sans 3", system-ui;
|
19019
19544
|
margin: 0;
|
19545
|
+
text-align: ${textBlockPosition};
|
19020
19546
|
}
|
19021
19547
|
.${prefix}__header:hover {
|
19022
19548
|
color: #b5914a;
|
@@ -19470,7 +19996,7 @@ class RbLongToutTallSE extends BaseSpotComponent {
|
|
19470
19996
|
`;
|
19471
19997
|
}
|
19472
19998
|
styles() {
|
19473
|
-
const { textBlockPosition = ENUM_TEXT_BLOCK_POSITION.MIDDLE_LEFT, mobileTextBlockPosition = textBlockPosition
|
19999
|
+
const { textBlockPosition = ENUM_TEXT_BLOCK_POSITION.MIDDLE_LEFT, mobileTextBlockPosition = textBlockPosition } = this._data;
|
19474
20000
|
const desktopGradientDirection = this.getGradientDirection(textBlockPosition);
|
19475
20001
|
const mobileGradientDirection = this.getGradientDirection(mobileTextBlockPosition);
|
19476
20002
|
const linearGradient = generateGradientColor(this._config.overlay, 'rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 40%');
|
@@ -19932,7 +20458,7 @@ class RbSmallDiscoverToutSE extends BaseSpotComponent {
|
|
19932
20458
|
`;
|
19933
20459
|
}
|
19934
20460
|
styles() {
|
19935
|
-
const { textColor = '#000000', backgroundColor = 'transparent', primaryImage, mobilePrimaryImage = primaryImage
|
20461
|
+
const { textColor = '#000000', backgroundColor = 'transparent', primaryImage, mobilePrimaryImage = primaryImage } = this._data;
|
19936
20462
|
const prefix = this._config.prefix;
|
19937
20463
|
return `
|
19938
20464
|
.${prefix} {
|
@@ -20102,10 +20628,7 @@ class RbVideoPlayerSE extends BaseSpotComponent {
|
|
20102
20628
|
description: mobileDescription,
|
20103
20629
|
}
|
20104
20630
|
: { header, description };
|
20105
|
-
const elements = [
|
20106
|
-
renderElement('h2', `${prefix}__header`, content.header),
|
20107
|
-
renderElement('p', `${prefix}__description`, content.description),
|
20108
|
-
];
|
20631
|
+
const elements = [renderElement('h2', `${prefix}__header`, content.header), renderElement('p', `${prefix}__description`, content.description)];
|
20109
20632
|
return `
|
20110
20633
|
<div class="${prefix}__text ${prefix}__text-block--${textBlockPosition} ${prefix}__text-block-mobile--${mobileTextBlockPosition}">
|
20111
20634
|
${elements.join('')}
|
@@ -20244,9 +20767,7 @@ class RbVideoPlayerSE extends BaseSpotComponent {
|
|
20244
20767
|
|
20245
20768
|
@container (max-width: 639px) {
|
20246
20769
|
.${prefix}::before {
|
20247
|
-
${this.hasContent
|
20248
|
-
? `background: linear-gradient(${mobileGradientDirection}, ${linearGradient});`
|
20249
|
-
: ``}
|
20770
|
+
${this.hasContent ? `background: linear-gradient(${mobileGradientDirection}, ${linearGradient});` : ''}
|
20250
20771
|
}
|
20251
20772
|
|
20252
20773
|
.${prefix}__text-block-mobile--${ENUM_TEXT_BLOCK_POSITION.TOP_LEFT} {
|
@@ -20302,9 +20823,7 @@ class RbVideoPlayerSE extends BaseSpotComponent {
|
|
20302
20823
|
|
20303
20824
|
@container (min-width: 640px) {
|
20304
20825
|
.${prefix}::before {
|
20305
|
-
${this.hasContent
|
20306
|
-
? `background: linear-gradient(${desktopGradientDirection}, ${linearGradient});`
|
20307
|
-
: ``}
|
20826
|
+
${this.hasContent ? `background: linear-gradient(${desktopGradientDirection}, ${linearGradient});` : ''}
|
20308
20827
|
}
|
20309
20828
|
|
20310
20829
|
.${prefix}__text > * {
|
@@ -20512,6 +21031,12 @@ class SpotTemplateService {
|
|
20512
21031
|
[RMN_SPOT_TYPE.RB_CAROUSEL_HORIZONTAL_INFO_CARD]: {
|
20513
21032
|
rbCarouselHorizontalInfoCard: RbCarouselHorizontalInfoCardSE,
|
20514
21033
|
},
|
21034
|
+
[RMN_SPOT_TYPE.RB_CAROUSEL_VERTICAL_SMALL_IMAGE_INFO_CARD]: {
|
21035
|
+
rbCarouselVerticalSmallImageInfoCard: RbCarouselVerticalSmallImageInfoCardSE,
|
21036
|
+
},
|
21037
|
+
[RMN_SPOT_TYPE.RB_CAROUSEL_HORIZONTAL_SHORT_INFO_CARD]: {
|
21038
|
+
rbCarouselHorizontalShortInfoCard: RbCarouselHorizontalShortInfoCardSE,
|
21039
|
+
},
|
20515
21040
|
};
|
20516
21041
|
}
|
20517
21042
|
initializeIabTemplates() {
|
@@ -20918,18 +21443,14 @@ if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined
|
|
20918
21443
|
this.cloneToOriginalMap.set(newSpot, original);
|
20919
21444
|
// Add event delegation
|
20920
21445
|
let isDragging = false;
|
20921
|
-
slideElement.addEventListener('mousedown', () =>
|
20922
|
-
|
21446
|
+
slideElement.addEventListener('mousedown', () => {
|
21447
|
+
isDragging = false;
|
21448
|
+
});
|
21449
|
+
slideElement.addEventListener('mousemove', () => {
|
21450
|
+
isDragging = true;
|
21451
|
+
});
|
20923
21452
|
// Delegate all events to the original element
|
20924
|
-
const eventTypes = [
|
20925
|
-
'click',
|
20926
|
-
'mouseenter',
|
20927
|
-
'mouseleave',
|
20928
|
-
'mouseover',
|
20929
|
-
'mouseout',
|
20930
|
-
'focus',
|
20931
|
-
'blur',
|
20932
|
-
];
|
21453
|
+
const eventTypes = ['click', 'mouseenter', 'mouseleave', 'mouseover', 'mouseout', 'focus', 'blur'];
|
20933
21454
|
eventTypes.forEach((eventType) => {
|
20934
21455
|
newSpot.addEventListener(eventType, (e) => {
|
20935
21456
|
if (eventType === 'click' && isDragging) {
|
@@ -21216,8 +21737,7 @@ if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined
|
|
21216
21737
|
updateDragPosition() {
|
21217
21738
|
if (!this.elements.slidesContainer || this.state.isTransitioning)
|
21218
21739
|
return;
|
21219
|
-
const translateX = -this.state.virtualIndex * 100 -
|
21220
|
-
(this.state.dragDistance / this.state.containerWidth) * 100;
|
21740
|
+
const translateX = -this.state.virtualIndex * 100 - (this.state.dragDistance / this.state.containerWidth) * 100;
|
21221
21741
|
this.elements.slidesContainer.style.transform = `translateX(${translateX}%)`;
|
21222
21742
|
this.elements.slidesContainer.style.transition = 'none';
|
21223
21743
|
}
|
@@ -21225,6 +21745,7 @@ if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined
|
|
21225
21745
|
* Navigates to a specific slide
|
21226
21746
|
* Used primarily by dot navigation
|
21227
21747
|
*/
|
21748
|
+
// biome-ignore lint/correctness/noUnusedPrivateClassMembers: Used for dot navigation
|
21228
21749
|
goToSlide(index) {
|
21229
21750
|
if (this.state.isTransitioning)
|
21230
21751
|
return;
|
@@ -21410,9 +21931,7 @@ if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined
|
|
21410
21931
|
* Ensures only valid positions are used
|
21411
21932
|
*/
|
21412
21933
|
validateButtonsPosition() {
|
21413
|
-
if (this.state.useButtons &&
|
21414
|
-
!this.state.buttons.together &&
|
21415
|
-
this.state.buttons.position !== 'middle-sides') {
|
21934
|
+
if (this.state.useButtons && !this.state.buttons.together && this.state.buttons.position !== 'middle-sides') {
|
21416
21935
|
console.warn('LiquidCommerce Rmn Sdk: When buttons are not together, only "middle-sides" is allowed. Defaulting to "middle-sides".');
|
21417
21936
|
this.state.buttons.position = 'middle-sides';
|
21418
21937
|
}
|
@@ -21809,7 +22328,7 @@ class MonitorService {
|
|
21809
22328
|
}
|
21810
22329
|
}
|
21811
22330
|
}
|
21812
|
-
async fireAndPublishSpotEvent({ spotEvent, eventUrl, placementId, spotId, spotType
|
22331
|
+
async fireAndPublishSpotEvent({ spotEvent, eventUrl, placementId, spotId, spotType }) {
|
21813
22332
|
await fireEvent({
|
21814
22333
|
spotType,
|
21815
22334
|
event: spotEvent,
|
@@ -21828,8 +22347,7 @@ class MonitorService {
|
|
21828
22347
|
return AnalyticsTool.Other;
|
21829
22348
|
}
|
21830
22349
|
// Check for GTM
|
21831
|
-
if (typeof window.google_tag_manager !== 'undefined' ||
|
21832
|
-
typeof window.dataLayer !== 'undefined') {
|
22350
|
+
if (typeof window.google_tag_manager !== 'undefined' || typeof window.dataLayer !== 'undefined') {
|
21833
22351
|
return AnalyticsTool.GoogleTagManager;
|
21834
22352
|
}
|
21835
22353
|
// Check for GA (both Universal Analytics and GA4)
|
@@ -22012,14 +22530,10 @@ class SpotManagerService {
|
|
22012
22530
|
}
|
22013
22531
|
deepMerge(current, updates) {
|
22014
22532
|
return {
|
22015
|
-
identifier: updates.identifier
|
22016
|
-
? { ...current.identifier, ...updates.identifier }
|
22017
|
-
: current.identifier,
|
22533
|
+
identifier: updates.identifier ? { ...current.identifier, ...updates.identifier } : current.identifier,
|
22018
22534
|
dom: updates.dom ? { ...current.dom, ...updates.dom } : current.dom,
|
22019
22535
|
state: updates.state ? { ...current.state, ...updates.state } : current.state,
|
22020
|
-
displayConfig: updates.displayConfig
|
22021
|
-
? { ...current.displayConfig, ...updates.displayConfig }
|
22022
|
-
: current.displayConfig,
|
22536
|
+
displayConfig: updates.displayConfig ? { ...current.displayConfig, ...updates.displayConfig } : current.displayConfig,
|
22023
22537
|
};
|
22024
22538
|
}
|
22025
22539
|
}
|
@@ -22220,9 +22734,7 @@ class BrowserRmnClient {
|
|
22220
22734
|
if (!placement || !injectData) {
|
22221
22735
|
this.spotManagerService.updateSpotLifecycleState(placementId, {
|
22222
22736
|
state: {
|
22223
|
-
error: !placement
|
22224
|
-
? `Placement element not found for id "${placementId}".`
|
22225
|
-
: `Placement not found for id "${placementId}".`,
|
22737
|
+
error: !placement ? `Placement element not found for id "${placementId}".` : `Placement not found for id "${placementId}".`,
|
22226
22738
|
mounted: false,
|
22227
22739
|
loading: false,
|
22228
22740
|
},
|
@@ -22244,7 +22756,7 @@ class BrowserRmnClient {
|
|
22244
22756
|
if (!skeletonElement) {
|
22245
22757
|
this.spotManagerService.updateSpotLifecycleState(injectData.placementId, {
|
22246
22758
|
state: {
|
22247
|
-
error:
|
22759
|
+
error: 'Failed to create skeleton loader element.',
|
22248
22760
|
loading: true,
|
22249
22761
|
},
|
22250
22762
|
});
|
@@ -22457,7 +22969,7 @@ class BrowserRmnClient {
|
|
22457
22969
|
if (!carouselElement) {
|
22458
22970
|
this.spotManagerService.updateSpotLifecycleState(placementId, {
|
22459
22971
|
state: {
|
22460
|
-
error:
|
22972
|
+
error: 'Failed to inject spot carousel element. Could not create spot carousel element.',
|
22461
22973
|
mounted: false,
|
22462
22974
|
loading: false,
|
22463
22975
|
},
|
@@ -22532,23 +23044,21 @@ class ServerRmnClient {
|
|
22532
23044
|
/**
|
22533
23045
|
* Publishes the spot data for a given placement ID to the RMN.
|
22534
23046
|
*
|
22535
|
-
* @param {string}
|
22536
|
-
* @param {ISpot}
|
23047
|
+
* @param {string} _placementId - The unique identifier for the placement.
|
23048
|
+
* @param {ISpot} _spot - The spot data.
|
22537
23049
|
* @return {void} - Does not return any value.
|
22538
23050
|
*/
|
22539
|
-
|
22540
|
-
publishSpotToRmn(placementId, spot) {
|
23051
|
+
publishSpotToRmn(_placementId, _spot) {
|
22541
23052
|
console.warn('RmnSdk: Publishing spot elements is not supported in server-side environment.');
|
22542
23053
|
}
|
22543
23054
|
/**
|
22544
23055
|
* Injects the spot elements into their provided placement.
|
22545
23056
|
*
|
22546
|
-
* @param {IInjectSpotElementParams}
|
23057
|
+
* @param {IInjectSpotElementParams} _params - Parameters for injecting spot elements.
|
22547
23058
|
*
|
22548
23059
|
* @return {Promise<void>} - A promise that resolves when the spot elements are injected.
|
22549
23060
|
*/
|
22550
|
-
|
22551
|
-
async injectSpotElement(params) {
|
23061
|
+
async injectSpotElement(_params) {
|
22552
23062
|
console.warn('RmnSdk: Injecting spot elements is not supported in server-side environment.');
|
22553
23063
|
}
|
22554
23064
|
}
|