@liquidcommercedev/rmn-sdk 1.5.0-beta.2 → 1.5.0-beta.4
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.cjs +20 -8
- package/dist/index.esm.js +20 -8
- package/dist/types/enums.d.ts +1 -0
- package/dist/types/modules/element/element.interface.d.ts +5 -2
- package/dist/types/modules/event/event.interface.d.ts +1 -1
- package/dist/types/modules/event/event.service.d.ts +3 -3
- package/dist/types/modules/event/helpers/intersection.service.d.ts +1 -1
- package/dist/types/modules/event/helpers/localstorage.service.d.ts +1 -1
- package/dist/types/modules/event/helpers/resize.service.d.ts +1 -1
- package/dist/types/types.d.ts +4 -3
- package/package.json +1 -1
- package/umd/liquidcommerce-rmn-sdk.min.js +1 -1
package/dist/index.cjs
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
exports.RMN_SPOT_TYPE = void 0;
|
4
4
|
(function (RMN_SPOT_TYPE) {
|
5
5
|
// Reserve Bar Spot Types
|
6
|
+
RMN_SPOT_TYPE["RB_HOMEPAGE_HERO"] = "rbHomepageHero";
|
6
7
|
RMN_SPOT_TYPE["RB_HOMEPAGE_HERO_THREE_TILE"] = "rbHomepageHeroThreeTile";
|
7
8
|
RMN_SPOT_TYPE["RB_HOMEPAGE_HERO_TWO_TILE"] = "rbHomepageHeroTwoTile";
|
8
9
|
RMN_SPOT_TYPE["RB_HOMEPAGE_HERO_FULL_IMAGE"] = "rbHomepageHeroFullImage";
|
@@ -15207,6 +15208,10 @@ class IntersectionObserverService {
|
|
15207
15208
|
|
15208
15209
|
class LocalStorage {
|
15209
15210
|
constructor() {
|
15211
|
+
if (typeof window.localStorage === 'undefined') {
|
15212
|
+
console.warn('Local storage is not supported in this environment');
|
15213
|
+
return;
|
15214
|
+
}
|
15210
15215
|
this.spots = new Map();
|
15211
15216
|
// Sync local storage with the current state
|
15212
15217
|
this.syncLocalStorage();
|
@@ -15220,7 +15225,7 @@ class LocalStorage {
|
|
15220
15225
|
return LocalStorage.instance;
|
15221
15226
|
}
|
15222
15227
|
syncLocalStorage() {
|
15223
|
-
const localStorageData = localStorage.getItem(LocalStorage.localStorageKey);
|
15228
|
+
const localStorageData = window.localStorage.getItem(LocalStorage.localStorageKey);
|
15224
15229
|
// TODO: Encrypt the data before storing it in the local storage
|
15225
15230
|
if (localStorageData) {
|
15226
15231
|
try {
|
@@ -15239,30 +15244,37 @@ class LocalStorage {
|
|
15239
15244
|
}
|
15240
15245
|
}
|
15241
15246
|
setSpot(spotId, data) {
|
15247
|
+
if (!this.spots)
|
15248
|
+
return;
|
15242
15249
|
data.createdAt = Date.now();
|
15243
15250
|
this.spots.set(spotId, data);
|
15244
15251
|
this.updateLocalStorage();
|
15245
15252
|
}
|
15246
15253
|
getSpot(spotId) {
|
15247
|
-
|
15254
|
+
var _a;
|
15255
|
+
return (_a = this.spots) === null || _a === void 0 ? void 0 : _a.get(spotId);
|
15248
15256
|
}
|
15249
15257
|
removeSpot(spotId) {
|
15250
|
-
|
15258
|
+
var _a;
|
15259
|
+
(_a = this.spots) === null || _a === void 0 ? void 0 : _a.delete(spotId);
|
15251
15260
|
this.updateLocalStorage();
|
15252
15261
|
}
|
15253
15262
|
updateLocalStorage() {
|
15263
|
+
if (!this.spots)
|
15264
|
+
return;
|
15254
15265
|
const data = this.mapToObj(this.spots);
|
15255
15266
|
localStorage.setItem(LocalStorage.localStorageKey, JSON.stringify(data));
|
15256
15267
|
}
|
15257
15268
|
clearLocalStorage() {
|
15258
|
-
localStorage.removeItem(LocalStorage.localStorageKey);
|
15269
|
+
window.localStorage.removeItem(LocalStorage.localStorageKey);
|
15259
15270
|
}
|
15260
15271
|
removeExpiredSpots() {
|
15272
|
+
var _a;
|
15261
15273
|
const currentTime = Date.now();
|
15262
|
-
this.spots.forEach((spot, spotId) => {
|
15263
|
-
var _a;
|
15274
|
+
(_a = this.spots) === null || _a === void 0 ? void 0 : _a.forEach((spot, spotId) => {
|
15275
|
+
var _a, _b;
|
15264
15276
|
if (currentTime - ((_a = spot.createdAt) !== null && _a !== void 0 ? _a : 0) > LocalStorage.spotExpirationTime) {
|
15265
|
-
this.spots.delete(spotId);
|
15277
|
+
(_b = this.spots) === null || _b === void 0 ? void 0 : _b.delete(spotId);
|
15266
15278
|
}
|
15267
15279
|
});
|
15268
15280
|
this.updateLocalStorage();
|
@@ -18555,7 +18567,7 @@ class LiquidCommerceRmnClient {
|
|
18555
18567
|
placement.removeAttribute('class');
|
18556
18568
|
Object.assign(placement.style, {
|
18557
18569
|
width: '100%',
|
18558
|
-
height: '
|
18570
|
+
height: '100%',
|
18559
18571
|
display: 'flex',
|
18560
18572
|
justifyContent: 'center',
|
18561
18573
|
});
|
package/dist/index.esm.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
var RMN_SPOT_TYPE;
|
2
2
|
(function (RMN_SPOT_TYPE) {
|
3
3
|
// Reserve Bar Spot Types
|
4
|
+
RMN_SPOT_TYPE["RB_HOMEPAGE_HERO"] = "rbHomepageHero";
|
4
5
|
RMN_SPOT_TYPE["RB_HOMEPAGE_HERO_THREE_TILE"] = "rbHomepageHeroThreeTile";
|
5
6
|
RMN_SPOT_TYPE["RB_HOMEPAGE_HERO_TWO_TILE"] = "rbHomepageHeroTwoTile";
|
6
7
|
RMN_SPOT_TYPE["RB_HOMEPAGE_HERO_FULL_IMAGE"] = "rbHomepageHeroFullImage";
|
@@ -15205,6 +15206,10 @@ class IntersectionObserverService {
|
|
15205
15206
|
|
15206
15207
|
class LocalStorage {
|
15207
15208
|
constructor() {
|
15209
|
+
if (typeof window.localStorage === 'undefined') {
|
15210
|
+
console.warn('Local storage is not supported in this environment');
|
15211
|
+
return;
|
15212
|
+
}
|
15208
15213
|
this.spots = new Map();
|
15209
15214
|
// Sync local storage with the current state
|
15210
15215
|
this.syncLocalStorage();
|
@@ -15218,7 +15223,7 @@ class LocalStorage {
|
|
15218
15223
|
return LocalStorage.instance;
|
15219
15224
|
}
|
15220
15225
|
syncLocalStorage() {
|
15221
|
-
const localStorageData = localStorage.getItem(LocalStorage.localStorageKey);
|
15226
|
+
const localStorageData = window.localStorage.getItem(LocalStorage.localStorageKey);
|
15222
15227
|
// TODO: Encrypt the data before storing it in the local storage
|
15223
15228
|
if (localStorageData) {
|
15224
15229
|
try {
|
@@ -15237,30 +15242,37 @@ class LocalStorage {
|
|
15237
15242
|
}
|
15238
15243
|
}
|
15239
15244
|
setSpot(spotId, data) {
|
15245
|
+
if (!this.spots)
|
15246
|
+
return;
|
15240
15247
|
data.createdAt = Date.now();
|
15241
15248
|
this.spots.set(spotId, data);
|
15242
15249
|
this.updateLocalStorage();
|
15243
15250
|
}
|
15244
15251
|
getSpot(spotId) {
|
15245
|
-
|
15252
|
+
var _a;
|
15253
|
+
return (_a = this.spots) === null || _a === void 0 ? void 0 : _a.get(spotId);
|
15246
15254
|
}
|
15247
15255
|
removeSpot(spotId) {
|
15248
|
-
|
15256
|
+
var _a;
|
15257
|
+
(_a = this.spots) === null || _a === void 0 ? void 0 : _a.delete(spotId);
|
15249
15258
|
this.updateLocalStorage();
|
15250
15259
|
}
|
15251
15260
|
updateLocalStorage() {
|
15261
|
+
if (!this.spots)
|
15262
|
+
return;
|
15252
15263
|
const data = this.mapToObj(this.spots);
|
15253
15264
|
localStorage.setItem(LocalStorage.localStorageKey, JSON.stringify(data));
|
15254
15265
|
}
|
15255
15266
|
clearLocalStorage() {
|
15256
|
-
localStorage.removeItem(LocalStorage.localStorageKey);
|
15267
|
+
window.localStorage.removeItem(LocalStorage.localStorageKey);
|
15257
15268
|
}
|
15258
15269
|
removeExpiredSpots() {
|
15270
|
+
var _a;
|
15259
15271
|
const currentTime = Date.now();
|
15260
|
-
this.spots.forEach((spot, spotId) => {
|
15261
|
-
var _a;
|
15272
|
+
(_a = this.spots) === null || _a === void 0 ? void 0 : _a.forEach((spot, spotId) => {
|
15273
|
+
var _a, _b;
|
15262
15274
|
if (currentTime - ((_a = spot.createdAt) !== null && _a !== void 0 ? _a : 0) > LocalStorage.spotExpirationTime) {
|
15263
|
-
this.spots.delete(spotId);
|
15275
|
+
(_b = this.spots) === null || _b === void 0 ? void 0 : _b.delete(spotId);
|
15264
15276
|
}
|
15265
15277
|
});
|
15266
15278
|
this.updateLocalStorage();
|
@@ -18553,7 +18565,7 @@ class LiquidCommerceRmnClient {
|
|
18553
18565
|
placement.removeAttribute('class');
|
18554
18566
|
Object.assign(placement.style, {
|
18555
18567
|
width: '100%',
|
18556
|
-
height: '
|
18568
|
+
height: '100%',
|
18557
18569
|
display: 'flex',
|
18558
18570
|
justifyContent: 'center',
|
18559
18571
|
});
|
package/dist/types/enums.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { RMN_SPOT_TYPE } from 'enums';
|
1
|
+
import type { RMN_FILTER_PROPERTIES, RMN_SPOT_TYPE } from 'enums';
|
2
2
|
import type { ICarouselOptions, ICreateCarouselElementParams } from 'modules/element/component/carousel';
|
3
3
|
import type { ICreateSpotElementParams } from 'modules/element/component/spot';
|
4
4
|
import type { RmnFilterType } from 'modules/selection';
|
@@ -21,12 +21,15 @@ export interface IInjectSpotElementConfig {
|
|
21
21
|
overlay?: ISpotOverlay;
|
22
22
|
carousel?: ICarouselOptions;
|
23
23
|
}
|
24
|
+
export type IInjectSpotElementFilterType = Partial<Omit<RmnFilterType, RMN_FILTER_PROPERTIES.KEYWORDS> & {
|
25
|
+
exactMatch?: string;
|
26
|
+
}>;
|
24
27
|
export interface IInjectSpotElement {
|
25
28
|
placementId: string;
|
26
29
|
spotType: RMN_SPOT_TYPE | string;
|
27
30
|
count?: number;
|
28
31
|
config?: Omit<IInjectSpotElementConfig, 'url'>;
|
29
|
-
filter?:
|
32
|
+
filter?: IInjectSpotElementFilterType;
|
30
33
|
}
|
31
34
|
export interface ICreateElementConfig {
|
32
35
|
spot?: RMN_SPOT_TYPE;
|
@@ -56,7 +56,7 @@ export interface IBuyNowEvent {
|
|
56
56
|
placementId: string;
|
57
57
|
spotId: string;
|
58
58
|
}
|
59
|
-
export interface
|
59
|
+
export interface IRmnEventMap {
|
60
60
|
[RMN_SPOT_EVENT.LIFECYCLE_STATE]: ILifecycleState;
|
61
61
|
[RMN_SPOT_EVENT.CLICK]: IClickEvent;
|
62
62
|
[RMN_SPOT_EVENT.IMPRESSION]: IImpressionEvent;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { RMN_SPOT_EVENT } from 'enums';
|
2
|
-
import type {
|
2
|
+
import type { ILifecycleState, IRegisterSpotParams, IRmnEventMap } from './event.interface';
|
3
3
|
export declare class EventService {
|
4
4
|
private static instance;
|
5
5
|
private pubSub;
|
@@ -9,8 +9,8 @@ export declare class EventService {
|
|
9
9
|
private activeSpots;
|
10
10
|
private constructor();
|
11
11
|
static getInstance(): EventService;
|
12
|
-
subscribe(eventType: RMN_SPOT_EVENT, callback: (data:
|
13
|
-
publish(eventType: RMN_SPOT_EVENT, data:
|
12
|
+
subscribe(eventType: RMN_SPOT_EVENT, callback: (data: IRmnEventMap[RMN_SPOT_EVENT]) => void): () => void;
|
13
|
+
publish(eventType: RMN_SPOT_EVENT, data: IRmnEventMap[RMN_SPOT_EVENT]): void;
|
14
14
|
registerSpot(params: IRegisterSpotParams): void;
|
15
15
|
unregisterSpot(placementId: string): void;
|
16
16
|
/**
|
@@ -1,6 +1,6 @@
|
|
1
1
|
export declare class IntersectionObserverService {
|
2
2
|
private observers;
|
3
|
-
private defaultOptions;
|
3
|
+
private readonly defaultOptions;
|
4
4
|
constructor(defaultOptions?: IntersectionObserverInit);
|
5
5
|
observe(element: HTMLElement, callback: (entry: IntersectionObserverEntry) => void, options?: IntersectionObserverInit): void;
|
6
6
|
unobserve(element: HTMLElement): void;
|
package/dist/types/types.d.ts
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
-
import type { IEventMap } from './modules/event';
|
2
1
|
export type { IInjectSpotElement, IInjectSpotElementConfig, IInjectSpotElementParams, IRmnCreateSpotElementConfig, ISpotColors, ISpotOverlay, } from 'modules/element';
|
3
2
|
export type { CarouselNavPositionType, ICarouselButtonOptions, ICarouselDotOptions, ICarouselOptions, } from 'modules/element/component/carousel';
|
3
|
+
export type { IAddToCartEvent, IAddToWishlistEvent, IBuyNowEvent, IClickEvent, IImpressionEvent, ILifecycleState, ILSDisplayConfig, ILSDom, ILSIdentifier, ILSState, IPurchaseEvent, IRmnEventMap, } from 'modules/event';
|
4
4
|
export type { ISpots, RmnFilterType, RmnSpotType } from 'modules/selection';
|
5
5
|
export { ISpot, ISpotEvent, ISpotSelectionParams } from 'modules/selection';
|
6
6
|
import type { RMN_ENV, RMN_SPOT_EVENT } from 'enums';
|
7
7
|
import type { IInjectSpotElementParams } from 'modules/element';
|
8
|
+
import type { IRmnEventMap } from 'modules/event';
|
8
9
|
import type { ISpots, ISpotSelectionParams } from 'modules/selection';
|
9
10
|
export interface IRmnClient {
|
10
11
|
spotSelection(params: ISpotSelectionParams): Promise<ISpots | {
|
@@ -13,8 +14,8 @@ export interface IRmnClient {
|
|
13
14
|
injectSpotElement(params: IInjectSpotElementParams): Promise<void>;
|
14
15
|
}
|
15
16
|
export interface IRmnEventManager {
|
16
|
-
subscribe: (eventType: RMN_SPOT_EVENT, callback: (data:
|
17
|
-
publish: (eventType: RMN_SPOT_EVENT, data:
|
17
|
+
subscribe: (eventType: RMN_SPOT_EVENT, callback: (data: IRmnEventMap[RMN_SPOT_EVENT]) => void) => () => void;
|
18
|
+
publish: (eventType: RMN_SPOT_EVENT, data: IRmnEventMap[RMN_SPOT_EVENT]) => void;
|
18
19
|
destroySpot: (placementId: string) => void;
|
19
20
|
}
|
20
21
|
export interface IRmnConfig {
|
package/package.json
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
"name": "@liquidcommercedev/rmn-sdk",
|
3
3
|
"description": "LiquidCommerce RMN SDK",
|
4
4
|
"author": "LiquidCommerce Tech",
|
5
|
-
"version": "1.5.0-beta.
|
5
|
+
"version": "1.5.0-beta.4",
|
6
6
|
"homepage": "https://docs.liquidcommerce.co/rmn-sdk",
|
7
7
|
"main": "./dist/index.cjs",
|
8
8
|
"module": "./dist/index.esm.js",
|