@o2vend/theme-cli 1.0.37 → 1.0.38
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/lib/lib/dev-server.js +309 -40
- package/lib/lib/liquid-engine.js +3 -1
- package/lib/lib/mock-data.js +36 -124
- package/lib/lib/widget-service.js +12 -4
- package/package.json +1 -1
- package/test-theme/assets/async-sections.js +32 -24
- package/test-theme/assets/cart-drawer.js +20 -22
- package/test-theme/assets/cart-manager.js +1 -15
- package/test-theme/assets/checkout-price-handler.js +12 -11
- package/test-theme/assets/checkout.css +1415 -0
- package/test-theme/assets/checkout.js +3174 -0
- package/test-theme/assets/components.css +178 -29
- package/test-theme/assets/delivery-zone.js +1 -1
- package/test-theme/assets/product-detail.css +1050 -0
- package/test-theme/assets/product-detail.js +2940 -0
- package/test-theme/assets/theme.css +95 -120
- package/test-theme/assets/theme.js +781 -186
- package/test-theme/layout/theme.liquid +91 -17
- package/test-theme/sections/content.liquid +64 -57
- package/test-theme/sections/footer-fallback.liquid +57 -7
- package/test-theme/sections/footer.liquid +63 -12
- package/test-theme/sections/header-fallback.liquid +41 -41
- package/test-theme/sections/header.liquid +41 -51
- package/test-theme/sections/hero-fallback.liquid +1 -1
- package/test-theme/sections/hero.liquid +159 -136
- package/test-theme/snippets/account-sidebar.liquid +121 -29
- package/test-theme/snippets/add-to-cart-modal.liquid +258 -206
- package/test-theme/snippets/breadcrumbs.liquid +98 -11
- package/test-theme/snippets/cart-drawer.liquid +93 -0
- package/test-theme/snippets/delivery-zone-city-selector.liquid +101 -15
- package/test-theme/snippets/delivery-zone-modal.liquid +529 -84
- package/test-theme/snippets/delivery-zone-search.liquid +104 -18
- package/test-theme/snippets/login-modal.liquid +269 -82
- package/test-theme/snippets/mega-menu.liquid +130 -43
- package/test-theme/snippets/news-thumbnail.liquid +120 -28
- package/test-theme/snippets/pagination.liquid +1 -1
- package/test-theme/snippets/price.liquid +100 -9
- package/test-theme/snippets/product-card-related.liquid +22 -4
- package/test-theme/snippets/product-card-simple.liquid +521 -25
- package/test-theme/snippets/product-card.liquid +145 -232
- package/test-theme/snippets/rating.liquid +100 -9
- package/test-theme/snippets/skeleton-collection-grid.liquid +94 -8
- package/test-theme/snippets/skeleton-product-card.liquid +102 -16
- package/test-theme/snippets/skeleton-product-grid.liquid +87 -1
- package/test-theme/snippets/social-sharing.liquid +133 -32
- package/test-theme/templates/account/dashboard.liquid +30 -0
- package/test-theme/templates/account/loyalty-redemption.liquid +29 -28
- package/test-theme/templates/account/loyalty.liquid +45 -43
- package/test-theme/templates/account/order-detail.liquid +15 -8
- package/test-theme/templates/account/orders.liquid +189 -35
- package/test-theme/templates/account/profile.liquid +509 -114
- package/test-theme/templates/account/register.liquid +18 -8
- package/test-theme/templates/account/return-orders.liquid +31 -30
- package/test-theme/templates/account/store-credit.liquid +27 -26
- package/test-theme/templates/account/subscriptions.liquid +22 -5
- package/test-theme/templates/account/wishlist.liquid +88 -19
- package/test-theme/templates/address-book.liquid +166 -69
- package/test-theme/templates/categories.liquid +90 -30
- package/test-theme/templates/checkout.liquid +137 -3834
- package/test-theme/templates/error.liquid +23 -21
- package/test-theme/templates/index.liquid +29 -0
- package/test-theme/templates/login.liquid +33 -6
- package/test-theme/templates/order-confirmation.liquid +67 -9
- package/test-theme/templates/page.liquid +418 -206
- package/test-theme/templates/product-detail.liquid +124 -3878
- package/test-theme/templates/products.liquid +155 -30
- package/test-theme/templates/search.liquid +739 -225
- package/test-theme/widgets/brand-carousel.liquid +102 -82
- package/test-theme/widgets/brand.liquid +78 -50
- package/test-theme/widgets/carousel.liquid +253 -121
- package/test-theme/widgets/category-list-carousel.liquid +32 -8
- package/test-theme/widgets/category-list.liquid +21 -6
- package/test-theme/widgets/category.liquid +104 -37
- package/test-theme/widgets/discount-time.liquid +326 -119
- package/test-theme/widgets/footer-menu.liquid +115 -23
- package/test-theme/widgets/footer.liquid +118 -5
- package/test-theme/widgets/gallery.liquid +29 -5
- package/test-theme/widgets/header-menu.liquid +25 -13
- package/test-theme/widgets/header.liquid +64 -26
- package/test-theme/widgets/html.liquid +29 -6
- package/test-theme/widgets/news.liquid +6 -0
- package/test-theme/widgets/product-canvas.liquid +20 -12
- package/test-theme/widgets/product-carousel.liquid +118 -56
- package/test-theme/widgets/shared/product-grid.liquid +12 -0
- package/test-theme/widgets/single-product.liquid +688 -250
- package/test-theme/widgets/spacebar-carousel.liquid +39 -10
- package/test-theme/widgets/spacebar.liquid +77 -6
- package/test-theme/widgets/splash.liquid +40 -30
- package/test-theme/widgets/testimonial-carousel.liquid +111 -67
|
@@ -3,9 +3,18 @@
|
|
|
3
3
|
* Handles price change detection, polling, and user notifications on the checkout page
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
(
|
|
6
|
+
(() => {
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
+
const percentDecode = (s) => {
|
|
10
|
+
if (typeof s !== 'string') return s || '';
|
|
11
|
+
try {
|
|
12
|
+
return s.replace(/\+/g, ' ').replace(/%([0-9A-Fa-f]{2})/g, (_, h) => String.fromCharCode(parseInt(h, 16)));
|
|
13
|
+
} catch {
|
|
14
|
+
return s;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
|
|
9
18
|
// Configuration
|
|
10
19
|
const POLL_INTERVAL = 45000; // Poll every 45 seconds
|
|
11
20
|
const PRICE_CHANGE_THRESHOLD = 0.01; // 1 cent threshold for price changes
|
|
@@ -36,7 +45,7 @@
|
|
|
36
45
|
for (let cookie of cookies) {
|
|
37
46
|
const [name, value] = cookie.trim().split('=');
|
|
38
47
|
if (name === 'checkout_token' || name === 'checkoutToken') {
|
|
39
|
-
return
|
|
48
|
+
return percentDecode(value);
|
|
40
49
|
}
|
|
41
50
|
}
|
|
42
51
|
|
|
@@ -49,7 +58,6 @@
|
|
|
49
58
|
async function fetchCheckout() {
|
|
50
59
|
const checkoutToken = getCheckoutToken();
|
|
51
60
|
if (!checkoutToken) {
|
|
52
|
-
console.warn('[PRICE HANDLER] No checkout token found');
|
|
53
61
|
return null;
|
|
54
62
|
}
|
|
55
63
|
|
|
@@ -243,8 +251,6 @@
|
|
|
243
251
|
checkForPriceChanges();
|
|
244
252
|
}
|
|
245
253
|
}, POLL_INTERVAL);
|
|
246
|
-
|
|
247
|
-
console.log('[PRICE HANDLER] Started polling for price changes');
|
|
248
254
|
}
|
|
249
255
|
|
|
250
256
|
/**
|
|
@@ -254,7 +260,6 @@
|
|
|
254
260
|
if (pollInterval) {
|
|
255
261
|
clearInterval(pollInterval);
|
|
256
262
|
pollInterval = null;
|
|
257
|
-
console.log('[PRICE HANDLER] Stopped polling for price changes');
|
|
258
263
|
}
|
|
259
264
|
}
|
|
260
265
|
|
|
@@ -291,9 +296,7 @@
|
|
|
291
296
|
*/
|
|
292
297
|
function requestNotificationPermission() {
|
|
293
298
|
if ('Notification' in window && Notification.permission === 'default') {
|
|
294
|
-
Notification.requestPermission()
|
|
295
|
-
console.log('[PRICE HANDLER] Notification permission:', permission);
|
|
296
|
-
});
|
|
299
|
+
Notification.requestPermission();
|
|
297
300
|
}
|
|
298
301
|
}
|
|
299
302
|
|
|
@@ -350,8 +353,6 @@
|
|
|
350
353
|
|
|
351
354
|
// Stop polling when page is about to unload
|
|
352
355
|
window.addEventListener('beforeunload', stopPolling);
|
|
353
|
-
|
|
354
|
-
console.log('[PRICE HANDLER] Initialized');
|
|
355
356
|
}
|
|
356
357
|
|
|
357
358
|
// Initialize when DOM is ready
|