@lvble/core 0.70.1

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.
@@ -0,0 +1,450 @@
1
+ import mixpanel from "mixpanel-browser";
2
+ export var Environment;
3
+ (function (Environment) {
4
+ Environment["Local"] = "local";
5
+ Environment["Dev"] = "development";
6
+ Environment["Sandbox"] = "sandbox";
7
+ Environment["Production"] = "production";
8
+ })(Environment || (Environment = {}));
9
+ const envToBaseUrlMap = {
10
+ widget: {
11
+ [Environment.Local]: "http://localhost:3001",
12
+ [Environment.Dev]: "https://v2.widget.pms.development.nowlvble.com",
13
+ [Environment.Sandbox]: "https://v2.widget.pms.sandbox.nowlvble.com",
14
+ [Environment.Production]: "https://v2.widget.pms.production.nowlvble.com",
15
+ },
16
+ experience: {
17
+ [Environment.Local]: "http://localhost:3001",
18
+ [Environment.Dev]: "https://v2.experience.pms.development.nowlvble.com",
19
+ [Environment.Sandbox]: "https://v2.experience.pms.sandbox.nowlvble.com",
20
+ [Environment.Production]: "https://v2.experience.pms.production.nowlvble.com",
21
+ },
22
+ };
23
+ const MIXPANEL_TOKEN = "9ad1530a57a977ab9d4005e2ba11ab4a";
24
+ let lvbleInitialized = false;
25
+ let eventListenersAdded = { lvble: false, open: false };
26
+ let widget;
27
+ let modalElements = {};
28
+ let installment_plan_event;
29
+ const observer = new IntersectionObserver((entries) => {
30
+ entries.forEach((entry) => {
31
+ if (entry.isIntersecting) {
32
+ // Send message to the widget when visible
33
+ document.querySelectorAll("lvble-widget-v3").forEach((currentWidget) => {
34
+ var _a, _b;
35
+ const iframe = (_a = currentWidget.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("iframe");
36
+ (_b = iframe.contentWindow) === null || _b === void 0 ? void 0 : _b.postMessage({ eventType: "WIDGET_IN_VIEWPORT" }, "*");
37
+ });
38
+ }
39
+ });
40
+ }, { threshold: 0.8 } // Trigger when at least 50% of iframe is visible
41
+ );
42
+ // We use this function to check if the widget is in the viewport on page load
43
+ function waitForWidget() {
44
+ const checkExist = setInterval(() => {
45
+ document.querySelectorAll("lvble-widget-v3").forEach((currentWidget) => {
46
+ var _a;
47
+ const iframe = (_a = currentWidget.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("iframe");
48
+ if (iframe) {
49
+ clearInterval(checkExist); // Stop checking once the iframe is found
50
+ // Step 1: Ensure iframe has non-zero dimensions before proceeding
51
+ const checkSize = setInterval(() => {
52
+ const rect = iframe.getBoundingClientRect();
53
+ if (rect.width > 0 && rect.height > 0) {
54
+ clearInterval(checkSize);
55
+ if (rect.width > 0 && rect.height > 0 &&
56
+ rect.top >= 0 &&
57
+ rect.left >= 0 &&
58
+ rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
59
+ rect.right <= (window.innerWidth || document.documentElement.clientWidth)) {
60
+ setTimeout(() => {
61
+ var _a;
62
+ (_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.postMessage({ eventType: "WIDGET_IN_VIEWPORT" }, "*");
63
+ }, 5000);
64
+ }
65
+ }
66
+ }, 100); // Check every 100ms until the iframe has size
67
+ }
68
+ });
69
+ }, 100); // Check every 100ms until the iframe exists
70
+ }
71
+ class LvbleWidget extends HTMLElement {
72
+ constructor() {
73
+ super();
74
+ Object.defineProperty(this, "_iframe", {
75
+ enumerable: true,
76
+ configurable: true,
77
+ writable: true,
78
+ value: void 0
79
+ });
80
+ this.attachShadow({ mode: "open" });
81
+ this.style.minHeight = "inherit";
82
+ }
83
+ get environment() {
84
+ return this.getAttribute("environment");
85
+ }
86
+ set environment(val) {
87
+ val
88
+ ? this.setAttribute("environment", val)
89
+ : this.removeAttribute("environment");
90
+ }
91
+ get token() {
92
+ return this.getAttribute("token") || "";
93
+ }
94
+ set token(val) {
95
+ val ? this.setAttribute("token", val) : this.removeAttribute("token");
96
+ this.setAttribute("token_expiry", new Date(Date.now() + 60 * 1000).toISOString());
97
+ }
98
+ get token_expired() {
99
+ if (!this.token) {
100
+ return true;
101
+ }
102
+ const token_expiry_val = this.getAttribute("token_expiry");
103
+ const token_expiry_date = token_expiry_val ? new Date(token_expiry_val) : undefined;
104
+ if (!token_expiry_date) {
105
+ return true;
106
+ }
107
+ return token_expiry_date ? new Date() > token_expiry_date : true;
108
+ }
109
+ get customApiUrlParam() {
110
+ return this.getAttribute("custom-api-url-param") || "";
111
+ }
112
+ set customApiUrlParam(value) {
113
+ if (value && this.environment === Environment.Dev) {
114
+ this.setAttribute("custom-api-url-param", value);
115
+ }
116
+ else {
117
+ this.removeAttribute("custom-api-url-param");
118
+ }
119
+ }
120
+ get onEvent() {
121
+ const val = this.getAttribute("onEvent");
122
+ return val
123
+ ? new Function("return " + val)()
124
+ : undefined;
125
+ }
126
+ set onEvent(val) {
127
+ val !== undefined
128
+ ? this.setAttribute("onEvent", val.toString())
129
+ : this.removeAttribute("onEvent");
130
+ }
131
+ get balance() {
132
+ const val = this.getAttribute("balance");
133
+ return val ? parseFloat(val) : undefined;
134
+ }
135
+ set balance(val) {
136
+ val !== undefined
137
+ ? this.setAttribute("balance", val.toString())
138
+ : this.removeAttribute("balance");
139
+ }
140
+ get pms() {
141
+ return this.getAttribute("pms") || undefined;
142
+ }
143
+ set pms(val) {
144
+ val ? this.setAttribute("pms", val) : this.removeAttribute("pms");
145
+ }
146
+ get signature() {
147
+ return this.getAttribute("signature") || undefined;
148
+ }
149
+ set signature(val) {
150
+ val
151
+ ? this.setAttribute("signature", val)
152
+ : this.removeAttribute("signature");
153
+ }
154
+ get externalId() {
155
+ return this.getAttribute("externalId") || undefined;
156
+ }
157
+ set externalId(val) {
158
+ val
159
+ ? this.setAttribute("externalId", val)
160
+ : this.removeAttribute("externalId");
161
+ }
162
+ connectedCallback() {
163
+ var _a, _b, _c;
164
+ const loader = document.createElement("div");
165
+ loader.innerHTML = `
166
+ <div class="container">
167
+ </div>
168
+ `;
169
+ loader.style.cssText = `
170
+ display: flex;
171
+ flex-direction: column;
172
+ gap: 0.5rem;
173
+ height: 100%;
174
+ width: 100%;
175
+ align-items: center;
176
+ justify-content: center;
177
+ min-height: 250px;
178
+ background-color: #F2FAF8;
179
+ border-radius: 20px;
180
+ background: linear-gradient(15deg, #F2FAF8 0%,rgb(255, 255, 255) 100%);
181
+ `;
182
+ const style = document.createElement("style");
183
+ style.textContent = `
184
+
185
+ .container {
186
+ display: flex;
187
+ flex-direction: column;
188
+ gap: 0.5rem;
189
+ height: 100%;
190
+ width: 100%;
191
+ align-items: center;
192
+ justify-content: center;
193
+ }
194
+ @keyframes spin {
195
+ 0% { transform: rotate(0deg); }
196
+ 100% { transform: rotate(360deg); }
197
+ }
198
+ `;
199
+ (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.appendChild(style);
200
+ (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.appendChild(loader);
201
+ const iframe = document.createElement("iframe");
202
+ if (this.token) {
203
+ iframe.src = `${envToBaseUrlMap.widget[this.environment]}?token=${this.token}&environment=${this.environment}${this.customApiUrlParam}`;
204
+ }
205
+ else {
206
+ iframe.src = `${envToBaseUrlMap.widget[this.environment]}?pms=${this.pms}&balance=${this.balance}&external_id=${this.externalId}&signature=${this.signature}&customApiUrl=${this.customApiUrlParam}`;
207
+ }
208
+ iframe.style.cssText = `
209
+ width: 100%;
210
+ height: 100%;
211
+ border: solid transparent;
212
+ border-radius: 10px;
213
+ min-height: 250px;
214
+ display: none;
215
+ `;
216
+ this._iframe = iframe;
217
+ iframe.onload = () => {
218
+ setInterval(() => {
219
+ loader.style.display = "none";
220
+ iframe.style.display = "block";
221
+ }, 100); // Give widget some time to load
222
+ };
223
+ (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.appendChild(iframe);
224
+ }
225
+ disconnectedCallback() {
226
+ if (this.shadowRoot)
227
+ this.shadowRoot.innerHTML = "";
228
+ }
229
+ }
230
+ customElements.define("lvble-widget-v3", LvbleWidget);
231
+ const createModalElements = ({ modal }) => {
232
+ const iframe = document.createElement("iframe");
233
+ iframe.className = "livble-modal-iframe";
234
+ iframe.style.cssText = `
235
+ position: absolute;
236
+ top: calc(50dvh);
237
+ left: 50vw;
238
+ transform: translate(-50%, -50%);
239
+ width: min(95dvw, 360px);
240
+ border: solid transparent 1px;
241
+ border-radius: 10px;
242
+ background-color: white;
243
+ `;
244
+ if (modal === null || modal === void 0 ? void 0 : modal.height) {
245
+ iframe.style.height = modal.height;
246
+ }
247
+ const background = document.createElement("div");
248
+ background.style.cssText = `
249
+ position: fixed;
250
+ top: 0;
251
+ left: 0;
252
+ width: 100%;
253
+ height: 100%;
254
+ background-color: rgba(0, 0, 0, 0.5);
255
+ z-index: 2147483647;
256
+ `;
257
+ background.hidden = true;
258
+ background.appendChild(iframe);
259
+ let isUiWebview = /((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent);
260
+ const style = document.createElement("style");
261
+ if (isUiWebview) {
262
+ style.id = "modal-styles";
263
+ style.textContent = `
264
+ .livble-modal-iframe {
265
+ height: 36rem;
266
+ }
267
+ @media only screen and (min-width: 380px) {
268
+ .livble-modal-iframe {
269
+ height: 43rem;
270
+ }
271
+ }
272
+ `;
273
+ iframe.appendChild(style);
274
+ }
275
+ else {
276
+ style.id = "modal-styles";
277
+ style.textContent = `
278
+ .livble-modal-iframe {
279
+ height: clamp(min(75dvh, 750px), ${(modal === null || modal === void 0 ? void 0 : modal.height) || "95dvh"}, min(95dvh, 750px));
280
+ }
281
+ `;
282
+ iframe.appendChild(style);
283
+ }
284
+ return { background, iframe };
285
+ };
286
+ const createWidget = (initOptions, modalElements, eventListenersAdded, customApiUrlParam, token) => {
287
+ widget = new LvbleWidget();
288
+ widget.environment = initOptions.environment;
289
+ widget.token = token;
290
+ widget.customApiUrlParam = customApiUrlParam;
291
+ modalElements.iframe.src = `${envToBaseUrlMap.experience[initOptions.environment]}?token=${token}${customApiUrlParam}`;
292
+ const handleWidgetMessage = (message) => {
293
+ var _a;
294
+ if (message.origin !== envToBaseUrlMap.widget[initOptions.environment])
295
+ return;
296
+ const { eventType, data } = message.data;
297
+ if (!eventType)
298
+ return;
299
+ if (eventType === "OPEN_EXPERIENCE_REQUEST") {
300
+ openExperience(initOptions, modalElements, customApiUrlParam, token);
301
+ }
302
+ if (eventType === "INSTALLMENT_PLAN_CHOSEN") {
303
+ installment_plan_event = message;
304
+ (_a = modalElements.iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.postMessage(installment_plan_event.data, "*");
305
+ }
306
+ };
307
+ if (!eventListenersAdded.lvble) {
308
+ window.addEventListener("message", handleWidgetMessage);
309
+ eventListenersAdded.lvble = true;
310
+ mixpanel.init(MIXPANEL_TOKEN, { debug: false });
311
+ }
312
+ // Set observers for widget visibility
313
+ observer.observe(widget);
314
+ waitForWidget();
315
+ return widget;
316
+ };
317
+ const createAnonymousWidget = (initOptions, eventListenersAdded) => {
318
+ widget = new LvbleWidget();
319
+ widget.environment = initOptions.environment;
320
+ widget.customApiUrlParam = initOptions.customApiUrl || "";
321
+ widget.pms = initOptions.pms;
322
+ widget.signature = initOptions.signature;
323
+ widget.externalId = initOptions.externalId;
324
+ widget.balance = initOptions.balance;
325
+ widget.onEvent = initOptions.onEvent;
326
+ modalElements.iframe.src = `${envToBaseUrlMap.experience[initOptions.environment]}`;
327
+ const handleWidgetMessage = (message) => {
328
+ var _a;
329
+ if (message.origin !== envToBaseUrlMap.widget[initOptions.environment])
330
+ return;
331
+ const { eventType, data } = message.data;
332
+ if (!eventType)
333
+ return;
334
+ if (eventType === "OPEN_EXPERIENCE_REQUEST_WAITING_FOR_TOKEN" &&
335
+ initOptions.onWidgetClickCallback) {
336
+ if (widget.token_expired) {
337
+ initOptions.onWidgetClickCallback();
338
+ }
339
+ else {
340
+ openExperienceAndSetToken(modalElements, widget.token);
341
+ }
342
+ }
343
+ if (eventType === "OPEN_EXPERIENCE_REQUEST" &&
344
+ initOptions.onWidgetClickCallback &&
345
+ widget.token) {
346
+ openExperience(initOptions, modalElements, widget.customApiUrlParam, widget.token);
347
+ }
348
+ if (eventType === "INSTALLMENT_PLAN_CHOSEN") {
349
+ installment_plan_event = message;
350
+ (_a = modalElements.iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.postMessage(installment_plan_event.data, "*");
351
+ return;
352
+ }
353
+ };
354
+ if (!eventListenersAdded.lvble) {
355
+ window.addEventListener("message", handleWidgetMessage);
356
+ eventListenersAdded.lvble = true;
357
+ mixpanel.init(MIXPANEL_TOKEN, { debug: false });
358
+ }
359
+ // Set observers for widget visibility
360
+ observer.observe(widget);
361
+ waitForWidget();
362
+ return widget;
363
+ };
364
+ const openExperienceAndSetToken = (modalElements, token) => {
365
+ document.querySelectorAll("lvble-widget-v3").forEach((currentWidget) => {
366
+ var _a, _b;
367
+ const iframe = (_a = currentWidget.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("iframe");
368
+ (_b = iframe.contentWindow) === null || _b === void 0 ? void 0 : _b.postMessage({ eventType: "OPEN_EXPERIENCE_REQUEST_TOKEN_LOADED" }, "*");
369
+ });
370
+ var shouldChangeSrc = false;
371
+ console.log("LIVBLE: Token", token);
372
+ if (widget.token_expired) {
373
+ widget.token = token;
374
+ shouldChangeSrc = true;
375
+ console.log("LIVBLE: Token is expired");
376
+ }
377
+ else {
378
+ console.log("LIVBLE: Token is not expired");
379
+ }
380
+ const customApiUrlParam = (widget === null || widget === void 0 ? void 0 : widget.customApiUrlParam)
381
+ ? `&customApiUrl=${widget === null || widget === void 0 ? void 0 : widget.customApiUrlParam}`
382
+ : "";
383
+ openExperience({
384
+ environment: widget.environment,
385
+ onEvent: widget.onEvent,
386
+ }, modalElements, customApiUrlParam, token, shouldChangeSrc);
387
+ };
388
+ const openExperience = (initOptions, modalElements, customApiUrlParam, token, shouldChangeSrc = false) => {
389
+ console.log("LIVBLE: shouldChangeSrc is: ", shouldChangeSrc);
390
+ console.log("LIVBLE: smodalElements.iframe!.src: ", modalElements.iframe.src);
391
+ console.log("LIVBLE: token", modalElements.iframe.src);
392
+ if (!modalElements.iframe.src || shouldChangeSrc) {
393
+ modalElements.iframe.src = `${envToBaseUrlMap.experience[initOptions.environment]}?token=${token}${customApiUrlParam}`;
394
+ }
395
+ setTimeout(() => {
396
+ modalElements.background.hidden = false;
397
+ const handleModalMessage = (message) => {
398
+ var _a;
399
+ if (message.origin !== envToBaseUrlMap.experience[initOptions.environment])
400
+ return;
401
+ const { eventType, data } = message.data;
402
+ if (!eventType)
403
+ return;
404
+ if (eventType === "CLOSE_EXPERIENCE_REQUEST") {
405
+ modalElements.background.hidden = true;
406
+ initOptions.onEvent("EXPERIENCE_CLOSED", {});
407
+ return;
408
+ }
409
+ if (eventType === "DASHBOARD_LOADED" && installment_plan_event) {
410
+ (_a = modalElements.iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.postMessage(installment_plan_event.data, "*");
411
+ return;
412
+ }
413
+ document.querySelectorAll("lvble-widget-v3").forEach((currentWidget) => {
414
+ var _a, _b;
415
+ const iframe = (_a = currentWidget.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("iframe");
416
+ (_b = iframe.contentWindow) === null || _b === void 0 ? void 0 : _b.postMessage(message.data, "*");
417
+ });
418
+ mixpanel.track("BEFORE_INVOKE_ON_EVENT", message.data);
419
+ initOptions.onEvent(eventType, data);
420
+ mixpanel.track("AFTER_INVOKE_ON_EVENT", message.data);
421
+ };
422
+ if (!modalElements.background.hidden) {
423
+ window.addEventListener("message", handleModalMessage);
424
+ }
425
+ }, 300); // Give experience some time to load
426
+ };
427
+ const lvble = (initOptions) => {
428
+ if (!(initOptions === null || initOptions === void 0 ? void 0 : initOptions.onEvent) && !widget.onEvent)
429
+ throw new Error("onEvent callback is required");
430
+ if (!(initOptions === null || initOptions === void 0 ? void 0 : initOptions.environment) && !widget.environment)
431
+ throw new Error("environment is required");
432
+ if (!lvbleInitialized) {
433
+ modalElements = createModalElements({ modal: initOptions.modal });
434
+ document.body.appendChild(modalElements.background);
435
+ lvbleInitialized = true;
436
+ }
437
+ const customApiUrlParam = (initOptions === null || initOptions === void 0 ? void 0 : initOptions.customApiUrl)
438
+ ? `&customApiUrl=${initOptions === null || initOptions === void 0 ? void 0 : initOptions.customApiUrl}`
439
+ : "";
440
+ const lvbleInstance = {
441
+ isModalBuilt: false,
442
+ createWidgetWithToken: ({ token }) => createWidget(initOptions, modalElements, eventListenersAdded, customApiUrlParam, token),
443
+ createWidget: () => createAnonymousWidget(initOptions, eventListenersAdded),
444
+ open: (token) => openExperience(initOptions, modalElements, customApiUrlParam, token),
445
+ openExperienceAndSetToken: (token) => openExperienceAndSetToken(modalElements, token),
446
+ };
447
+ return lvbleInstance;
448
+ };
449
+ export const Lvble = lvble;
450
+ //# sourceMappingURL=lvble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lvble.js","sourceRoot":"","sources":["../../src/lib/lvble.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@lvble/core",
3
+ "private": false,
4
+ "license": "MIT",
5
+ "version": "0.70.1",
6
+ "main": "./dist/_bundles/index.js",
7
+ "module": "./dist/lib-esm/index.js",
8
+ "types": "./dist/lib/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/lib-esm/index.js",
12
+ "require": "./dist/lib/index.js"
13
+ },
14
+ "./dist/style.css": "./dist/style.css"
15
+ },
16
+ "engines": {
17
+ "node": ">=14.0.0"
18
+ },
19
+ "scripts": {
20
+ "start": "tsc && tsc -m es6 --outDir dist/lib-esm --watch",
21
+ "build:webpack": "webpack --config webpack.config.js --watch",
22
+ "lint:fix": "eslint --ext .js,.jsx,.ts,.tsx --fix",
23
+ "format:prettier": "prettier --write \"src/**/*.{ts,tsx,js,mdx}\"",
24
+ "test": "vitest",
25
+ "test:cov": "vitest run --coverage",
26
+ "prepack": ""
27
+ },
28
+ "devDependencies": {
29
+ "@types/mixpanel-browser": "^2.47.1",
30
+ "babel-plugin-transform-custom-element-classes": "^0.1.0",
31
+ "babel-plugin-transform-es2015-classes": "^6.24.1",
32
+ "ts-loader": "^9.4.4",
33
+ "webpack": "^5.88.2",
34
+ "webpack-cli": "^5.1.4"
35
+ },
36
+ "files": [
37
+ "dist"
38
+ ],
39
+ "lint-staged": {
40
+ "*.{ts,tsx,js,jsx,json,css,md}": [
41
+ "prettier -w"
42
+ ]
43
+ },
44
+ "dependencies": {
45
+ "mixpanel-browser": "^2.47.0"
46
+ }
47
+ }