wickes-css2 2.103.0-develop.9 → 2.103.0-et-774-filter-whisk.2

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.
Files changed (60) hide show
  1. package/build/css/category-main.css +1 -1
  2. package/build/css/homepage-main.css +1 -1
  3. package/build/css/kitchen-plp-main.css +1 -1
  4. package/build/css/main.css +1 -1
  5. package/build/css/my-account-main-v2.css +1 -1
  6. package/build/css/my-account-main.css +1 -1
  7. package/build/css/pdp-main-before-combine.css +1 -1
  8. package/build/css/pdp-main-non-critical.css +1 -1
  9. package/build/css/pdp-main.css +1 -1
  10. package/build/css/plp-main.css +1 -1
  11. package/build/css/store-locator-main.css +1 -1
  12. package/build/js/basket.min.js +2 -2
  13. package/build/js/bundle.min.js +1 -1
  14. package/build/js/checkout.min.js +2 -2
  15. package/build/js/emulation.min.js +10 -954
  16. package/build/js/general.bundle.min.js +1 -1
  17. package/build/js/kitchen/kitchen-plp.min.js +1 -1
  18. package/build/js/merged-checkout.min.js +2 -2
  19. package/build/js/page/basket-v2.js +244 -138
  20. package/build/js/page/components/discounts.js +6 -6
  21. package/build/js/page/kitchen/plp-filters.js +12 -0
  22. package/build/js/pdp.bundle.min.js +1 -1
  23. package/build/js/plp.bundle.min.js +1 -1
  24. package/build/js/project-list.min.js +1 -1
  25. package/package.json +2 -2
  26. package/src/components/mini-basket/mini-basket-empty.hbs +13 -3
  27. package/src/components/mini-basket/mini-basket.hbs +13 -32
  28. package/src/components/mini-basket/product-item.hbs +16 -37
  29. package/src/data/data_confirmation-summary.json +2 -4
  30. package/src/data/data_mini-basket.json +80 -4
  31. package/src/js/components/general/cart-slider.js +0 -4
  32. package/src/js/components/general/create-popup-slider.js +2 -5
  33. package/src/js/components/general/mini-basket-slider.js +8 -0
  34. package/src/js/emulation/custom-slider-emulation.js +10 -4
  35. package/src/js/page/basket-v2.js +244 -138
  36. package/src/js/page/components/discounts.js +6 -6
  37. package/src/js/page/kitchen/plp-filters.js +12 -0
  38. package/src/layouts/base.hbs +6 -0
  39. package/src/partials/scripts.hbs +0 -1
  40. package/src/scss/components/_custom-slider.scss +3 -131
  41. package/src/scss/components/_popover-mini-basket.scss +4 -0
  42. package/build/js/mini-basket-slider.min.js +0 -1
  43. package/build/js/page/basket/basket-update-cart-action.js +0 -59
  44. package/build/js/page/basket/basket-update-cart.js +0 -29
  45. package/build/js/page/basket/basket-utils.js +0 -50
  46. package/build/js/page/basket/mini-basket-total.js +0 -97
  47. package/build/js/page/basket/quantity-change-handler.js +0 -64
  48. package/build/js/page/basket/update-quantity-operation.js +0 -37
  49. package/build/js/page/basket/update-quantity.js +0 -65
  50. package/build/js/page/components/mini-basket-slider.js +0 -569
  51. package/src/components/mini-basket/mini-basket-order-item.hbs +0 -73
  52. package/src/js/emulation/mini-basket-data.js +0 -949
  53. package/src/js/page/basket/basket-update-cart-action.js +0 -59
  54. package/src/js/page/basket/basket-update-cart.js +0 -29
  55. package/src/js/page/basket/basket-utils.js +0 -50
  56. package/src/js/page/basket/mini-basket-total.js +0 -97
  57. package/src/js/page/basket/quantity-change-handler.js +0 -64
  58. package/src/js/page/basket/update-quantity-operation.js +0 -37
  59. package/src/js/page/basket/update-quantity.js +0 -65
  60. package/src/js/page/components/mini-basket-slider.js +0 -569
@@ -1,569 +0,0 @@
1
- import {handleQuantityChange} from "../basket/quantity-change-handler";
2
- import {updateQuantityAction} from "../basket/update-quantity";
3
- import {ROUTES} from "../utils/routes";
4
- import {callAction} from "../utils/http-action";
5
- import {updateTotal} from "../basket/mini-basket-total";
6
- import {updateQuantityOperation} from "../basket/update-quantity-operation";
7
- import {
8
- checkProductArrays,
9
- getCartEntries,
10
- getMessageInfo,
11
- isMessageExist,
12
- updatePromotion,
13
- showNotification
14
- } from "../basket/basket-utils";
15
- import {updateCartBase} from "../basket/basket-update-cart";
16
- import {updateCartActionBase} from "../basket/basket-update-cart-action";
17
- import {hideLoader, showLoader} from "../utils/loader";
18
-
19
- const Handlebars = require("hbsfy/runtime");
20
- import orderItemTemplate from "../../../components/mini-basket/mini-basket-order-item.hbs";
21
- import miniBasketMainWrap from "../../../components/mini-basket/mini-basket.hbs"
22
- import miniBasketEmpty from "../../../components/mini-basket/mini-basket-empty.hbs"
23
- Handlebars.registerHelper('eq', function (a, b) {
24
- return a === b;
25
- });
26
-
27
- Handlebars.registerHelper('removeFirst', function(str, remove) {
28
- if (typeof str !== 'string' || typeof remove !== 'string') return str;
29
- if (str.startsWith(remove)) {
30
- return str.slice(remove.length);
31
- }
32
- return str;
33
- });
34
-
35
- Handlebars.registerHelper('isToggleVatAvailable', function() {
36
- return Wick.checkLocalEnv ? false : window.ACC?.app?.isVatToggleAvailable;
37
- });
38
-
39
- var Wick = window.Wick || {};
40
-
41
- const urlsToReload = ['/cart', '/merge-carts'];
42
-
43
- Wick.MiniBasketSliderFE = {
44
- events: {
45
- MINI_BASKET_CHECKOUT: 'MINI_BASKET_CHECKOUT',
46
- MINI_BASKET_VIEW_BASKET: 'MINI_BASKET_VIEW_BASKET',
47
- SHOW_MINI_BASKET: 'SHOW_MINI_BASKET',
48
- MINI_BASKET_QUANTITY_INCREASE: 'MINI_BASKET_QUANTITY_INCREASE',
49
- MINI_BASKET_QUANTITY_DECREASE: 'MINI_BASKET_QUANTITY_DECREASE',
50
- MINI_BASKET_ITEM_REMOVE: 'MINI_BASKET_ITEM_REMOVE'
51
- },
52
- el: {
53
- miniBasket: '.custom-slider.mini-basket',
54
- customLoader: '.mini-basket .basket-loader',
55
- subtotal: '.checkout-widget__item-bold',
56
- value: '.checkout-widget__item-value',
57
- vat: '.checkout-widget__item-vat',
58
- delivery: '.checkout-widget__item-delivery',
59
- charity: '.checkout-widget__item-charity',
60
- cc: '.checkout-widget__item-cc',
61
- discountItem: '.checkout-widget__details-discount',
62
- totalToggle: '.mini-basket__total-toggle',
63
- totalToggleValue: '.mini-basket__total-toggle-value',
64
- orderItem: '.mini-basket .card.product-card-preview',
65
- products: '.mini-basket .products',
66
- miniBasketSection: '.mini-basket .products',
67
- miniBasketTotal: '.custom-slider__count',
68
- headerBasketCount: '.header-minicart .header-minicart__counter',
69
- itemTotalIncVat: '.price .including-vat-inherit .value',
70
- itemTotalExcVat: '.price excluding-vat-inherit .value',
71
- itemTotal: '.price',
72
- orderItemOffers: '.products__offers',
73
- orderItemInfo: '.products__details-body',
74
- productCardPreview: '.card.product-card-preview',
75
- notifications: '.custom-slider__notifications',
76
- btnQuantity: '.card .btn--quantity',
77
- btnQuantityMinus: '.btn--quantity[data-action="minus"]',
78
- btnRemove: '.card .btn--remove',
79
- customSliderWrap: '.custom-slider__wrap',
80
- miniBasketFooter: '.custom-slider__footer',
81
- customSliderEmpty: '.custom-slider__empty',
82
- quantityValue: '.product-card__quantity-value',
83
- productsItem: '.products__item',
84
- totalHide: 'order-item__total-hide',
85
- btnCheckout: '#addToCartPopupCheckoutButton',
86
- btnViewBasket: '.mini-basket a.btn-view-basket-cta',
87
- basketTotalItem: '.basket-total-items'
88
- },
89
- classes: {
90
- HIDDEN_CLASS_NAME: 'd-none',
91
- },
92
- cartEntries: [],
93
- getEqualMapForUpdateCart: function (data) {
94
- return [
95
- {
96
- item: Wick.MiniBasketSliderFE.el.subtotal,
97
- itemValue: Wick.MiniBasketSliderFE.el.value,
98
- dataValue: data.subtotalWithoutCharity?.formattedValue,
99
- value: data.subTotal?.value,
100
- title: 'Items subtotal:'
101
- },
102
- {
103
- item: Wick.MiniBasketSliderFE.el.vat,
104
- itemValue: Wick.MiniBasketSliderFE.el.value,
105
- dataValue: data.totalTax?.formattedValue,
106
- value: data.totalTax?.value,
107
- title: 'VAT:'
108
- },
109
- {
110
- item: Wick.MiniBasketSliderFE.el.cc,
111
- itemValue: Wick.MiniBasketSliderFE.el.value,
112
- dataValue: 'Free',
113
- title: 'Click & Collect:'
114
- },
115
- {
116
- item: Wick.MiniBasketSliderFE.el.delivery,
117
- itemValue: Wick.MiniBasketSliderFE.el.value,
118
- dataValue: data.deliveryCost?.formattedValue,
119
- value: data.deliveryCost?.value,
120
- title: 'Delivery:'
121
- },
122
- {
123
- item: Wick.MiniBasketSliderFE.el.charity,
124
- itemValue: Wick.MiniBasketSliderFE.el.value,
125
- dataValue: data.charityPrice?.formattedValue,
126
- value: data.charityPrice?.value,
127
- title: 'Charity donation:'
128
- },
129
- {
130
- item: Wick.MiniBasketSliderFE.el.discountItem,
131
- itemValue: Wick.MiniBasketSliderFE.el.value,
132
- dataValue: data.totalDiscounts ? data.totalDiscounts?.formattedValue : '',
133
- value: data.totalDiscounts ? data.totalDiscounts?.value : '',
134
- title: 'Discount(s):'
135
- },
136
- {
137
- item: Wick.MiniBasketSliderFE.el.totalToggle,
138
- itemValue: Wick.MiniBasketSliderFE.el.totalToggleValue,
139
- dataValue: data.totalPrice?.formattedValue,
140
- value: data.totalPrice?.value,
141
- },
142
- ];
143
- },
144
- isInitial: true,
145
- isMiniBasketOpened: false,
146
- actionEventType: null,
147
- isMiniBasketLoaded: false,
148
- miniBasketUpdateItemQuantity(e) {
149
- const $item = $(e.currentTarget).closest(Wick.MiniBasketSliderFE.el.productCardPreview);
150
- const quantityElement = $item.find(Wick.MiniBasketSliderFE.el.quantityValue)
151
- const value = quantityElement.text();
152
- const action = $(e.currentTarget).attr('data-action');
153
- const entryNumber = +$item.attr('data-id');
154
-
155
- if (action === 'plus') Wick.MiniBasketSliderFE.actionEventType = Wick.MiniBasketSliderFE.events.MINI_BASKET_QUANTITY_INCREASE;
156
- if (action === 'minus') Wick.MiniBasketSliderFE.actionEventType = Wick.MiniBasketSliderFE.events.MINI_BASKET_QUANTITY_DECREASE;
157
- if (action === 'remove') Wick.MiniBasketSliderFE.actionEventType = Wick.MiniBasketSliderFE.events.MINI_BASKET_ITEM_REMOVE;
158
-
159
- handleQuantityChange({
160
- quantityInput: quantityElement,
161
- action,
162
- value,
163
- context: $item,
164
- entryNumber,
165
- onQuantityChange: Wick.MiniBasketSliderFE.updateQuantityAction,
166
- debounceQuantityChange: Wick.MiniBasketSliderFE.debounceQuantityChange,
167
- parentWrap: Wick.MiniBasketSliderFE.el.productsItem
168
- });
169
- },
170
- debounceQuantityChange: _.debounce(function (entryNumber, value, quantityInput, context) {
171
- showLoader(Wick.MiniBasketSliderFE.el.customLoader);
172
- Wick.MiniBasketSliderFE.updateQuantityAction(entryNumber, value, quantityInput, context)
173
- }, 500),
174
- updateQuantityAction: function (entryNumber, quantityToUpdate, quantityInput, context) {
175
- updateQuantityAction({
176
- entryNumber,
177
- quantityToUpdate,
178
- quantityInput,
179
- context,
180
- hideLoader: () => setTimeout(() => hideLoader(Wick.MiniBasketSliderFE.el.customLoader), 500),
181
- updateAction: Wick.MiniBasketSliderFE.updateAction,
182
- isLocalEnv: Wick.checkLocalEnv,
183
- basketData: Wick.MiniBasketData,
184
- updateQuantityOperation: Wick.MiniBasketSliderFE.updateQuantityOperation,
185
- callActionFn: callAction,
186
- routes: ROUTES,
187
- isMiniBasket: true,
188
- });
189
-
190
- Wick.MiniBasketSliderFE.toggleMinusButtonState(context, quantityToUpdate);
191
- },
192
- toggleMinusButtonState($item, value) {
193
- const $minusBtn = $item.find(Wick.MiniBasketSliderFE.el.btnQuantityMinus);
194
- if (value > 1) {
195
- $minusBtn.prop('disabled', false);
196
- } else {
197
- $minusBtn.prop('disabled', true);
198
- }
199
- },
200
- updateAction: function (response, quantityToUpdate, quantityInput, context, successCallback) {
201
- Wick.MiniBasketSliderFE.updateQuantityOperation(
202
- quantityToUpdate,
203
- quantityInput,
204
- context,
205
- response
206
- );
207
- successCallback(response);
208
- },
209
- updateQuantityOperation: function (quantityToUpdate, quantityInput, context, data) {
210
- const $notifications = $(Wick.MiniBasketSliderFE.el.notifications);
211
- if ($notifications.children().length > 0) {
212
- $notifications.empty();
213
- }
214
-
215
- updateQuantityOperation(quantityToUpdate, quantityInput, context, data, {
216
- updateCart: Wick.MiniBasketSliderFE.updateCart,
217
- showNotification: Wick.MiniBasketSliderFE.showNotification,
218
- updateQuantity: Wick.MiniBasketSliderFE.updateQuantity,
219
- updateItemTotal: null,
220
- isMessageExist: Wick.MiniBasketSliderFE.isMessageExist,
221
- getMessageInfo: Wick.MiniBasketSliderFE.getMessageInfo
222
- });
223
- },
224
- updateCart: function (repaintData, context, charity, initial, callback) {
225
- console.log('case(api) to update cart');
226
- updateCartBase({
227
- isLocalEnv: Wick.checkLocalEnv,
228
- apiUrl: ROUTES.BASKET_GET_CART,
229
- apiType: 'GET',
230
- hideLoader: () => setTimeout(() => hideLoader(Wick.MiniBasketSliderFE.el.customLoader), 500),
231
- callActionFn: callAction,
232
- actionCallback: callback || Wick.MiniBasketSliderFE.updateCartAction,
233
- repaintData,
234
- context,
235
- charity,
236
- initial,
237
- localUpdateFn: function(initial, repaintData, context, charity) {
238
- if (initial) {
239
- Wick.MiniBasketSliderFE.getCartEntries(Wick.MiniBasketData.initialCartState);
240
- } else {
241
- updateTotal(
242
- Wick.MiniBasketData.updateCart,
243
- Wick.MiniBasketSliderFE.getEqualMapForUpdateCart(Wick.MiniBasketData.updateCart)
244
- );
245
-
246
- if (repaintData) {
247
- Wick.MiniBasketSliderFE.repaintOrderItems(Wick.MiniBasketData.updateCart, repaintData);
248
- } else {
249
- Wick.MiniBasketSliderFE.updateItemsCount(Wick.MiniBasketData.updateCart);
250
- }
251
-
252
- !charity || Wick.MiniBasketSliderFE.addCharityEntryNumber(Wick.MiniBasketData.updateCart);
253
- if (context && context.length) {
254
- Wick.MiniBasketSliderFE.updatePromotion(Wick.MiniBasketData.updateCart, context);
255
- }
256
- Wick.MiniBasketSliderFE.getCartEntries(Wick.MiniBasketData.updateCart);
257
- Wick.MiniBasketSliderFE.checkProductArrays(Wick.MiniBasketData.updateCart) || Wick.MiniBasketSliderFE.removeOrderItem(repaintData);
258
- setTimeout(() => hideLoader(Wick.MiniBasketSliderFE.el.customLoader), 1000);
259
- }
260
- }
261
- });
262
- },
263
- updateCartAction: function (response, {repaintData, context, charity, initial}) {
264
- updateCartActionBase({
265
- response,
266
- repaintData,
267
- context,
268
- charity,
269
- initial,
270
- updateOrderSummaryFn: updateTotal,
271
- getEqualMapFn: Wick.MiniBasketSliderFE.getEqualMapForUpdateCart,
272
- repaintOrderItemsFn: Wick.MiniBasketSliderFE.repaintOrderItems,
273
- addCharityEntryNumberFn: Wick.MiniBasketSliderFE.addCharityEntryNumber,
274
- updatePromotionFn: Wick.MiniBasketSliderFE.updatePromotion,
275
- cartEntries: Wick.MiniBasketSliderFE.cartEntries,
276
- getCartEntriesFn: () => Wick.MiniBasketSliderFE.getCartEntries(response),
277
- checkProductArraysFn: Wick.MiniBasketSliderFE.checkProductArrays,
278
- removeOrderItemFn: Wick.MiniBasketSliderFE.removeOrderItem,
279
- elOrderItem: Wick.MiniBasketSliderFE.el.orderItem,
280
- triggerCartUpdate: false,
281
- extraActionsMiniBasket: () => {
282
- Wick.MiniBasketSliderFE.toggleMiniBasketEmptyView();
283
- Wick.MiniBasketSliderFE.updateItemsCount(response);
284
-
285
- if (Wick.MiniBasketSliderFE.actionEventType) {
286
- Wick.MiniBasketSliderFE.fireMiniBasketActionEvent(Wick.MiniBasketSliderFE.actionEventType, response);
287
- }
288
- }
289
- });
290
- },
291
- fireMiniBasketActionEvent(eventType, cartData) {
292
- if (!eventType) return;
293
- const payload = {
294
- orderType: cartData.orderType || '',
295
- deliveryOrderGroups: cartData.deliveryOrderGroups || [],
296
- pickupOrderGroups: cartData.pickupOrderGroups || []
297
- };
298
- const event = createEvent(
299
- eventType,
300
- payload,
301
- {}
302
- );
303
- window.dispatchEvent(event);
304
- },
305
- removeOrderItem(data) {
306
- Wick.MiniBasketSliderFE.updateItemsCount(data);
307
- },
308
- repaintOrderItems: function (data) {
309
- const ccGroup = data.pickupOrderGroups || [],
310
- deliveryGroup = data.deliveryOrderGroups || [];
311
- let itemDetails = {};
312
- let position = 0;
313
-
314
- $(Wick.MiniBasketSliderFE.el.orderItem).remove();
315
-
316
- if (ccGroup.length) {
317
- ccGroup.forEach((obj) => {
318
- obj.entries.forEach(item => {
319
- itemDetails = { item, type: 'cc', data, position };
320
- $(Wick.MiniBasketSliderFE.el.products).append(Wick.MiniBasketSliderFE.createOrderItem(itemDetails));
321
- position++;
322
- });
323
- })
324
- }
325
-
326
- if (deliveryGroup.length) {
327
- deliveryGroup.forEach((obj) => {
328
- obj.entries.forEach(item => {
329
- if (item.charity) return;
330
- itemDetails = { item, type: 'delivery', data, position };
331
- $(Wick.MiniBasketSliderFE.el.products).append(Wick.MiniBasketSliderFE.createOrderItem(itemDetails));
332
- position++;
333
- });
334
- })
335
- }
336
-
337
- Wick.MiniBasketSliderFE.updateItemsCount(data);
338
-
339
- $(document).trigger("cartRerender");
340
- },
341
- showNotification: function(data) {
342
- showNotification(data, Wick.MiniBasketSliderFE.el.notifications);
343
- },
344
- isMessageExist: isMessageExist,
345
- getMessageInfo: getMessageInfo,
346
- getCartEntries: function(data) {
347
- if (!data.deliveryOrderGroups) {
348
- data.deliveryOrderGroups = [];
349
- data.pickupOrderGroups = [];
350
- Wick.MiniBasketSliderFE.cartEntries = getCartEntries(data);
351
- return
352
- }
353
-
354
- Wick.MiniBasketSliderFE.cartEntries = getCartEntries(data);
355
- },
356
- checkProductArrays: checkProductArrays,
357
- createOrderItem(itemDetails) {
358
- let promotionsHtml = '';
359
- if (itemDetails.item.updateable) {
360
- promotionsHtml = Wick.MiniBasketSliderFE.addPromotions(itemDetails.item, itemDetails.data);
361
- }
362
-
363
- if (itemDetails.item.deliveryPointOfService && itemDetails.item.deliveryPointOfService.description) {
364
- itemDetails.item.deliveryPointOfService.description = Wick.MiniBasketSliderFE.capitalizeWords(itemDetails.item.deliveryPointOfService.description);
365
- }
366
-
367
- return orderItemTemplate({
368
- item: itemDetails.item,
369
- type: itemDetails.type,
370
- promotionsHtml,
371
- position: itemDetails.position
372
- });
373
- },
374
- capitalizeWords(str) {
375
- return str
376
- .toLowerCase()
377
- .split(' ')
378
- .map(function(word) {
379
- return word.charAt(0).toUpperCase() + word.slice(1);
380
- })
381
- .join(' ');
382
- },
383
- updateItemsCount(data) {
384
- const totalCount = data.totalUnitCount || 0;
385
-
386
- $(Wick.MiniBasketSliderFE.el.miniBasketTotal).text(`Your basket (${totalCount})`);
387
- $(Wick.MiniBasketSliderFE.el.headerBasketCount).text(`${totalCount}`);
388
- $(Wick.MiniBasketSliderFE.el.basketTotalItem).html(`${totalCount}`);
389
- },
390
- updatePromotion: function(data) {
391
- updatePromotion(
392
- data,
393
- Wick.MiniBasketSliderFE.el.orderItem,
394
- Wick.MiniBasketSliderFE.el.orderItemOffers,
395
- Wick.MiniBasketSliderFE.el.orderItemInfo,
396
- Wick.MiniBasketSliderFE.addPromotions
397
- );
398
- },
399
- addPromotions: function (item, data) {
400
- let arr = [];
401
-
402
- data.potentialProductPromotions && data.potentialProductPromotions.forEach((entry) => {
403
- entry.consumedEntries.forEach((promo) => {
404
- if (promo.orderEntryNumber === item.entryNumber) {
405
- if (arr.length) {
406
- let duplicate = arr.every((el) => {
407
- return el !== `<div class="products__promo">${entry.description}</div>`
408
- })
409
-
410
- !duplicate || arr.push(`<div class="products__promo">${entry.description}</div>`);
411
-
412
- } else {
413
- arr.push(`<div class="products__promo">${entry.description}</div>`);
414
- }
415
- }
416
- })
417
-
418
- });
419
-
420
- data.appliedProductPromotions && data.appliedProductPromotions.forEach((entry) => {
421
- entry.consumedEntries.forEach((promo) => {
422
- if (promo.orderEntryNumber === item.entryNumber && entry.description) {
423
- if (arr.length) {
424
- let duplicate = arr.every((el) => {
425
- return el !== `<div class="products__promo">${entry.description}</div>`
426
- })
427
-
428
- !duplicate || arr.push(`<div class="products__promo">${entry.description}</div>`);
429
-
430
- } else {
431
- arr.push(`<div class="products__promo">${entry.description}</div>`);
432
- }
433
- }
434
- })
435
- });
436
-
437
- return arr.length ? `<div class="products__offers">${arr.join('')}</div>` : ''
438
- },
439
- initPopupSlider() {
440
- createPopupSlider({
441
- type: 'miniBasket',
442
- sliderSelector: '.custom-slider.mini-basket',
443
- onAppendEvent: Wick.MiniBasketSliderFE.events.SHOW_MINI_BASKET,
444
- onAppend: function (event, { showSlider }) {
445
- Wick.MiniBasketSliderFE.toggleMiniBasketEmptyView();
446
- showSlider();
447
- },
448
- onClose: function () {
449
- $(Wick.MiniBasketSliderFE.el.notifications).empty();
450
- Wick.MiniBasketSliderFE.isMiniBasketOpened = false;
451
- Wick.MiniBasketSliderFE.actionEventType = null;
452
- }
453
- });
454
- },
455
- toggleMiniBasketEmptyView() {
456
- if (!Wick.MiniBasketSliderFE.cartEntries.length) {
457
- if (!$(Wick.MiniBasketSliderFE.el.customSliderEmpty).length) {
458
- $(Wick.MiniBasketSliderFE.el.customSliderWrap).append(miniBasketEmpty());
459
- $(Wick.MiniBasketSliderFE.el.miniBasketFooter).addClass(Wick.MiniBasketSliderFE.classes.HIDDEN_CLASS_NAME);
460
- }
461
- } else {
462
- $(Wick.MiniBasketSliderFE.el.customSliderWrap).find(Wick.MiniBasketSliderFE.el.customSliderEmpty).remove();
463
- $(Wick.MiniBasketSliderFE.el.miniBasketFooter).removeClass(Wick.MiniBasketSliderFE.classes.HIDDEN_CLASS_NAME);
464
-
465
- if (!$(Wick.MiniBasketSliderFE.el.products).length) {
466
- $(Wick.MiniBasketSliderFE.el.customSliderWrap).append('<div class="products popover-mini-basket__cards-holder"></div>');
467
- }
468
- }
469
- },
470
- appendMiniBasketWrap() {
471
- if(!$(Wick.MiniBasketSliderFE.el.miniBasket).length) {
472
- $('body').append(miniBasketMainWrap());
473
- }
474
- },
475
- isEmptyBasketLocal() {
476
- return window.location.pathname.includes('page_product-details-saved-pl.html');
477
- },
478
- shouldReloadPage: function() {
479
- return urlsToReload.includes(window.location.pathname);
480
- },
481
- openMiniBasket() {
482
- if (Wick.MiniBasketSliderFE.isInitial && Wick.checkLocalEnv) {
483
- const initialCartState = Wick.MiniBasketSliderFE.isEmptyBasketLocal()
484
- ? Wick.MiniBasketData.initialCartEmptyState
485
- : Wick.MiniBasketData.initialCartState;
486
-
487
- Wick.MiniBasketSliderFE.getCartEntries(initialCartState);
488
-
489
- updateTotal(
490
- initialCartState,
491
- Wick.MiniBasketSliderFE.getEqualMapForUpdateCart(initialCartState)
492
- );
493
- Wick.MiniBasketSliderFE.repaintOrderItems(initialCartState);
494
- Wick.MiniBasketSliderFE.showMiniBasketEvent();
495
- setTimeout(() => {
496
- Wick.MiniBasketSliderFE.isInitial = false;
497
- }, 100);
498
- return;
499
- }
500
-
501
- if (!Wick.MiniBasketSliderFE.isMiniBasketLoaded) {
502
- Wick.MiniBasketSliderFE.updateCart(true, undefined, undefined, false, function (response, params) {
503
- Wick.MiniBasketSliderFE.updateCartAction(response, params);
504
- Wick.MiniBasketSliderFE.isMiniBasketLoaded = true;
505
- Wick.MiniBasketSliderFE.isMiniBasketOpened = true;
506
- Wick.MiniBasketSliderFE.showMiniBasketEvent();
507
- });
508
- } else {
509
- Wick.MiniBasketSliderFE.showMiniBasketEvent();
510
- }
511
- },
512
- showMiniBasketEvent() {
513
- return new Promise((resolve, reject) => {
514
- const eventDetail = { resolve, reject };
515
- const event = createEvent(
516
- Wick.MiniBasketSliderFE.events.SHOW_MINI_BASKET,
517
- {},
518
- eventDetail
519
- );
520
- window.dispatchEvent(event);
521
- });
522
- },
523
- bindMiniBasketBtnHandler(selector, eventName) {
524
- $(document).on('click', selector, function(e) {
525
- e.preventDefault();
526
- return new Promise((resolve, reject) => {
527
- const eventDetail = { resolve, reject };
528
- const event = createEvent(eventName, {}, eventDetail);
529
- window.dispatchEvent(event);
530
- })
531
- .then(() => {
532
- window.location.href = $(selector).attr('href');
533
- })
534
- .catch((error) => {
535
- console.error(error);
536
- });
537
- });
538
- },
539
- init () {
540
- $(Wick.MiniBasketSliderFE.el.miniBasket).on('click', Wick.MiniBasketSliderFE.el.btnQuantity, Wick.MiniBasketSliderFE.miniBasketUpdateItemQuantity);
541
- $(Wick.MiniBasketSliderFE.el.miniBasket).on('click', Wick.MiniBasketSliderFE.el.btnRemove, Wick.MiniBasketSliderFE.miniBasketUpdateItemQuantity);
542
-
543
- Wick.MiniBasketSliderFE.bindMiniBasketBtnHandler(
544
- Wick.MiniBasketSliderFE.el.btnCheckout,
545
- Wick.MiniBasketSliderFE.events.MINI_BASKET_CHECKOUT
546
- );
547
-
548
- Wick.MiniBasketSliderFE.bindMiniBasketBtnHandler(
549
- Wick.MiniBasketSliderFE.el.btnViewBasket,
550
- Wick.MiniBasketSliderFE.events.MINI_BASKET_VIEW_BASKET
551
- );
552
- }
553
- }
554
-
555
- $(document).ready(function () {
556
- const $minicartBtn = $('.header-minicart .header-minicart__btn');
557
- if (!$minicartBtn.length) return;
558
-
559
- if (Wick.MiniBasketSliderFE.shouldReloadPage()) {
560
- $minicartBtn.on('click', () => window.location.reload());
561
- return;
562
- }
563
-
564
- $minicartBtn.on('click', () => Wick.MiniBasketSliderFE.openMiniBasket());
565
-
566
- Wick.MiniBasketSliderFE.appendMiniBasketWrap();
567
- Wick.MiniBasketSliderFE.initPopupSlider();
568
- Wick.MiniBasketSliderFE.init();
569
- });