@ikas/storefront 0.0.165-alpha.6 → 0.0.165-alpha.8

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.
@@ -5,10 +5,10 @@ export declare class Analytics {
5
5
  constructor();
6
6
  static pageView(url: string): void;
7
7
  static productView(productDetail: IkasProductDetail): void;
8
- static addToCart(item: IkasProductDetail | IkasOrderLineItem, quantity: number): void;
8
+ static addToCart(item: IkasProductDetail | IkasOrderLineItem, quantity: number, eventId: string): void;
9
9
  static removeFromCart(item: IkasProductDetail | IkasOrderLineItem, quantity: number): void;
10
10
  static beginCheckout(checkout: IkasCheckout): void;
11
- static purchase(checkout: IkasCheckout, orderId: string): void;
11
+ static purchase(checkout: IkasCheckout, eventId: string): void;
12
12
  static checkoutStep(checkout: IkasCheckout, step: CheckoutStep): void;
13
13
  static disableHTML(): void;
14
14
  static addToWishlist(id: string): void;
@@ -3,9 +3,9 @@ import { IkasCart } from "../models/data/cart/index";
3
3
  export declare class FacebookPixel {
4
4
  constructor();
5
5
  static productView(productDetail: IkasProductDetail): void;
6
- static addToCart(item: IkasProductDetail | IkasOrderLineItem, quantity: number): void;
6
+ static addToCart(item: IkasProductDetail | IkasOrderLineItem, quantity: number, eventId: string): void;
7
7
  static beginCheckout(checkout: IkasCheckout): void;
8
- static purchase(checkout: IkasCheckout, orderId: string): void;
8
+ static purchase(checkout: IkasCheckout, eventId: string): void;
9
9
  static addToWishlist(id: string): void;
10
10
  static search(searchKeyword: string): void;
11
11
  static completeRegistration(): void;
package/build/index.es.js CHANGED
@@ -17876,13 +17876,13 @@ var FacebookPixel = /** @class */ (function () {
17876
17876
  console.error(err);
17877
17877
  }
17878
17878
  };
17879
- FacebookPixel.addToCart = function (item, quantity) {
17879
+ FacebookPixel.addToCart = function (item, quantity, eventId) {
17880
17880
  try {
17881
17881
  !isServer &&
17882
17882
  window.fbq &&
17883
17883
  window.fbq("track", "AddToCart", item instanceof IkasProductDetail
17884
17884
  ? productToFBPItem(item, quantity)
17885
- : orderLineItemToFBPItem(item, quantity));
17885
+ : orderLineItemToFBPItem(item, quantity), { eventId: eventId });
17886
17886
  return;
17887
17887
  }
17888
17888
  catch (err) {
@@ -17900,11 +17900,11 @@ var FacebookPixel = /** @class */ (function () {
17900
17900
  console.error(err);
17901
17901
  }
17902
17902
  };
17903
- FacebookPixel.purchase = function (checkout, orderId) {
17903
+ FacebookPixel.purchase = function (checkout, eventId) {
17904
17904
  try {
17905
17905
  !isServer &&
17906
17906
  window.fbq &&
17907
- window.fbq("track", "Purchase", beginCheckoutFBPItem(checkout));
17907
+ window.fbq("track", "Purchase", beginCheckoutFBPItem(checkout), { eventId: eventId });
17908
17908
  return;
17909
17909
  }
17910
17910
  catch (err) {
@@ -22514,7 +22514,7 @@ var IkasCartStore = /** @class */ (function () {
22514
22514
  this.addItem = function (variant, product, initialQuantity) {
22515
22515
  if (initialQuantity === void 0) { initialQuantity = 1; }
22516
22516
  return __awaiter(_this, void 0, void 0, function () {
22517
- var existingItem, input, cart, err_2;
22517
+ var existingItem, input, cart, eventId, err_2;
22518
22518
  var _a, _b, _c;
22519
22519
  return __generator(this, function (_d) {
22520
22520
  switch (_d.label) {
@@ -22553,7 +22553,10 @@ var IkasCartStore = /** @class */ (function () {
22553
22553
  _d.sent();
22554
22554
  _d.label = 3;
22555
22555
  case 3:
22556
- Analytics.addToCart(new IkasProductDetail(product, variant.variantValues), initialQuantity);
22556
+ if (this.cart) {
22557
+ eventId = this.cart.id + "-" + this.cart.updatedAt;
22558
+ Analytics.addToCart(new IkasProductDetail(product, variant.variantValues), initialQuantity, eventId);
22559
+ }
22557
22560
  return [3 /*break*/, 5];
22558
22561
  case 4:
22559
22562
  err_2 = _d.sent();
@@ -22565,7 +22568,7 @@ var IkasCartStore = /** @class */ (function () {
22565
22568
  });
22566
22569
  };
22567
22570
  this.changeItemQuantity = function (item, quantity) { return __awaiter(_this, void 0, void 0, function () {
22568
- var input, cart, oldQuantity, err_3;
22571
+ var input, cart, eventId, oldQuantity, err_3;
22569
22572
  var _a, _b, _c;
22570
22573
  return __generator(this, function (_d) {
22571
22574
  switch (_d.label) {
@@ -22599,12 +22602,15 @@ var IkasCartStore = /** @class */ (function () {
22599
22602
  _d.label = 3;
22600
22603
  case 3:
22601
22604
  this.removeCardIfEmpty();
22602
- oldQuantity = item.quantity;
22603
- if (oldQuantity > quantity) {
22604
- Analytics.removeFromCart(item, oldQuantity - quantity);
22605
- }
22606
- else {
22607
- Analytics.addToCart(item, quantity - oldQuantity);
22605
+ if (this.cart) {
22606
+ eventId = this.cart.id + "-" + this.cart.updatedAt;
22607
+ oldQuantity = item.quantity;
22608
+ if (oldQuantity > quantity) {
22609
+ Analytics.removeFromCart(item, oldQuantity - quantity);
22610
+ }
22611
+ else {
22612
+ Analytics.addToCart(item, quantity - oldQuantity, eventId);
22613
+ }
22608
22614
  }
22609
22615
  return [3 /*break*/, 5];
22610
22616
  case 4:
@@ -24108,9 +24114,9 @@ var Analytics = /** @class */ (function () {
24108
24114
  console.error(err);
24109
24115
  }
24110
24116
  };
24111
- Analytics.addToCart = function (item, quantity) {
24117
+ Analytics.addToCart = function (item, quantity, eventId) {
24112
24118
  try {
24113
- FacebookPixel.addToCart(item, quantity);
24119
+ FacebookPixel.addToCart(item, quantity, eventId);
24114
24120
  GoogleTagManager.addToCart(item, quantity);
24115
24121
  }
24116
24122
  catch (err) {
@@ -24138,11 +24144,11 @@ var Analytics = /** @class */ (function () {
24138
24144
  console.error(err);
24139
24145
  }
24140
24146
  };
24141
- Analytics.purchase = function (checkout, orderId) {
24147
+ Analytics.purchase = function (checkout, eventId) {
24142
24148
  try {
24143
24149
  localStorage.removeItem(LS_BEGIN_CHECKOUT_KEY);
24144
- FacebookPixel.purchase(checkout, orderId);
24145
- GoogleTagManager.purchase(checkout, orderId);
24150
+ FacebookPixel.purchase(checkout, eventId);
24151
+ GoogleTagManager.purchase(checkout, eventId);
24146
24152
  }
24147
24153
  catch (err) {
24148
24154
  console.error(err);
@@ -24958,11 +24964,15 @@ var IkasCustomerStore = /** @class */ (function () {
24958
24964
  };
24959
24965
  IkasCustomerStore.prototype.onProductView = function (productId, variantId) {
24960
24966
  return __awaiter(this, void 0, void 0, function () {
24961
- var isSuccess;
24967
+ var existingItem, isSuccess;
24962
24968
  return __generator(this, function (_a) {
24963
24969
  switch (_a.label) {
24964
24970
  case 0:
24965
24971
  if (!this.customer) return [3 /*break*/, 2];
24972
+ existingItem = this._lastViewedProducts.find(function (lvp) { return lvp.productId === productId; });
24973
+ if (existingItem) {
24974
+ return [2 /*return*/];
24975
+ }
24966
24976
  return [4 /*yield*/, IkasCustomerAPI.saveLastViewedProducts({
24967
24977
  customerId: this.customer.id,
24968
24978
  products: [
@@ -27643,10 +27653,25 @@ var IkasProductDetail = /** @class */ (function () {
27643
27653
  });
27644
27654
  Object.defineProperty(IkasProductDetail.prototype, "href", {
27645
27655
  get: function () {
27656
+ var _this = this;
27646
27657
  var metaData = this.product.metaData;
27647
27658
  if (!(metaData === null || metaData === void 0 ? void 0 : metaData.slug))
27648
27659
  return "";
27649
- return "/" + metaData.slug;
27660
+ var variantParams = this.product.variantTypes
27661
+ .map(function (pvt) {
27662
+ var vt = pvt.variantType;
27663
+ var selectedVariant = vt.values.find(function (vv) {
27664
+ return _this.selectedVariantValues.some(function (svv) { return svv.id === vv.id; });
27665
+ });
27666
+ if (selectedVariant)
27667
+ return vt.slug + "=" + selectedVariant.slug;
27668
+ })
27669
+ .filter(function (param) { return !!param; })
27670
+ .join("&");
27671
+ if (variantParams)
27672
+ return "/" + metaData.slug + "?" + variantParams;
27673
+ else
27674
+ return "/" + metaData.slug;
27650
27675
  },
27651
27676
  enumerable: false,
27652
27677
  configurable: true
@@ -27713,7 +27738,9 @@ var IkasProductDetail = /** @class */ (function () {
27713
27738
  })
27714
27739
  .filter(function (param) { return !!param; })
27715
27740
  .join("&");
27716
- var newUrl = "/" + metaData.slug + "?" + variantParams;
27741
+ var newUrl = "/" + metaData.slug;
27742
+ if (variantParams)
27743
+ newUrl = "/" + metaData.slug + "?" + variantParams;
27717
27744
  if (newUrl === window.location.pathname)
27718
27745
  return;
27719
27746
  var isShallow = process.env.NODE_ENV !== "production";
@@ -61293,6 +61320,7 @@ var StepSuccess = observer(function (_a) {
61293
61320
  var t = useTranslation().t;
61294
61321
  var _f = useState(false), isContactModalVisible = _f[0], setContactModalVisible = _f[1];
61295
61322
  useEffect(function () {
61323
+ var _a;
61296
61324
  if (typeof localStorage !== "undefined") {
61297
61325
  var lsCartId = localStorage.getItem(CART_LS_KEY);
61298
61326
  var lsCheckoutId = localStorage.getItem(CHECKOUT_LS_KEY);
@@ -61301,7 +61329,7 @@ var StepSuccess = observer(function (_a) {
61301
61329
  if (lsCheckoutId && lsCheckoutId === vm.checkout.id)
61302
61330
  localStorage.removeItem(CHECKOUT_LS_KEY);
61303
61331
  }
61304
- Analytics.purchase(vm.checkout, vm.checkout.orderNumber);
61332
+ Analytics.purchase(vm.checkout, ((_a = vm.successTransaction) === null || _a === void 0 ? void 0 : _a.id) || "");
61305
61333
  }, []);
61306
61334
  var customerName = (((_b = vm.checkout.customer) === null || _b === void 0 ? void 0 : _b.firstName) || "") +
61307
61335
  " " +
@@ -61519,11 +61547,28 @@ var OrderStatus = observer(function (_a) {
61519
61547
  })) === null || _d === void 0 ? void 0 : _d.text : ""));
61520
61548
  });
61521
61549
 
61550
+ var IMAGE_SIZES = [
61551
+ 180,
61552
+ 360,
61553
+ 540,
61554
+ 720,
61555
+ 900,
61556
+ 1080,
61557
+ 1296,
61558
+ 1512,
61559
+ 1728,
61560
+ 1950,
61561
+ 2560,
61562
+ 3840,
61563
+ ];
61522
61564
  var Image = function (_a) {
61523
61565
  var image = _a.image, others = __rest(_a, ["image"]);
61524
61566
  var loader = function (_a) {
61525
61567
  var width = _a.width;
61526
- return image.getSrc(width);
61568
+ var closest = IMAGE_SIZES.reduce(function (prev, curr) {
61569
+ return Math.abs(curr - width) < Math.abs(prev - width) ? curr : prev;
61570
+ });
61571
+ return image.getSrc(closest);
61527
61572
  };
61528
61573
  return (createElement(NextImage, __assign({}, others, { loader: loader, quality: 100, src: image.src, alt: others.alt || "Image" })));
61529
61574
  };
package/build/index.js CHANGED
@@ -17885,13 +17885,13 @@ var FacebookPixel = /** @class */ (function () {
17885
17885
  console.error(err);
17886
17886
  }
17887
17887
  };
17888
- FacebookPixel.addToCart = function (item, quantity) {
17888
+ FacebookPixel.addToCart = function (item, quantity, eventId) {
17889
17889
  try {
17890
17890
  !isServer &&
17891
17891
  window.fbq &&
17892
17892
  window.fbq("track", "AddToCart", item instanceof IkasProductDetail
17893
17893
  ? productToFBPItem(item, quantity)
17894
- : orderLineItemToFBPItem(item, quantity));
17894
+ : orderLineItemToFBPItem(item, quantity), { eventId: eventId });
17895
17895
  return;
17896
17896
  }
17897
17897
  catch (err) {
@@ -17909,11 +17909,11 @@ var FacebookPixel = /** @class */ (function () {
17909
17909
  console.error(err);
17910
17910
  }
17911
17911
  };
17912
- FacebookPixel.purchase = function (checkout, orderId) {
17912
+ FacebookPixel.purchase = function (checkout, eventId) {
17913
17913
  try {
17914
17914
  !isServer &&
17915
17915
  window.fbq &&
17916
- window.fbq("track", "Purchase", beginCheckoutFBPItem(checkout));
17916
+ window.fbq("track", "Purchase", beginCheckoutFBPItem(checkout), { eventId: eventId });
17917
17917
  return;
17918
17918
  }
17919
17919
  catch (err) {
@@ -22523,7 +22523,7 @@ var IkasCartStore = /** @class */ (function () {
22523
22523
  this.addItem = function (variant, product, initialQuantity) {
22524
22524
  if (initialQuantity === void 0) { initialQuantity = 1; }
22525
22525
  return __awaiter(_this, void 0, void 0, function () {
22526
- var existingItem, input, cart, err_2;
22526
+ var existingItem, input, cart, eventId, err_2;
22527
22527
  var _a, _b, _c;
22528
22528
  return __generator(this, function (_d) {
22529
22529
  switch (_d.label) {
@@ -22562,7 +22562,10 @@ var IkasCartStore = /** @class */ (function () {
22562
22562
  _d.sent();
22563
22563
  _d.label = 3;
22564
22564
  case 3:
22565
- Analytics.addToCart(new IkasProductDetail(product, variant.variantValues), initialQuantity);
22565
+ if (this.cart) {
22566
+ eventId = this.cart.id + "-" + this.cart.updatedAt;
22567
+ Analytics.addToCart(new IkasProductDetail(product, variant.variantValues), initialQuantity, eventId);
22568
+ }
22566
22569
  return [3 /*break*/, 5];
22567
22570
  case 4:
22568
22571
  err_2 = _d.sent();
@@ -22574,7 +22577,7 @@ var IkasCartStore = /** @class */ (function () {
22574
22577
  });
22575
22578
  };
22576
22579
  this.changeItemQuantity = function (item, quantity) { return __awaiter(_this, void 0, void 0, function () {
22577
- var input, cart, oldQuantity, err_3;
22580
+ var input, cart, eventId, oldQuantity, err_3;
22578
22581
  var _a, _b, _c;
22579
22582
  return __generator(this, function (_d) {
22580
22583
  switch (_d.label) {
@@ -22608,12 +22611,15 @@ var IkasCartStore = /** @class */ (function () {
22608
22611
  _d.label = 3;
22609
22612
  case 3:
22610
22613
  this.removeCardIfEmpty();
22611
- oldQuantity = item.quantity;
22612
- if (oldQuantity > quantity) {
22613
- Analytics.removeFromCart(item, oldQuantity - quantity);
22614
- }
22615
- else {
22616
- Analytics.addToCart(item, quantity - oldQuantity);
22614
+ if (this.cart) {
22615
+ eventId = this.cart.id + "-" + this.cart.updatedAt;
22616
+ oldQuantity = item.quantity;
22617
+ if (oldQuantity > quantity) {
22618
+ Analytics.removeFromCart(item, oldQuantity - quantity);
22619
+ }
22620
+ else {
22621
+ Analytics.addToCart(item, quantity - oldQuantity, eventId);
22622
+ }
22617
22623
  }
22618
22624
  return [3 /*break*/, 5];
22619
22625
  case 4:
@@ -24117,9 +24123,9 @@ var Analytics = /** @class */ (function () {
24117
24123
  console.error(err);
24118
24124
  }
24119
24125
  };
24120
- Analytics.addToCart = function (item, quantity) {
24126
+ Analytics.addToCart = function (item, quantity, eventId) {
24121
24127
  try {
24122
- FacebookPixel.addToCart(item, quantity);
24128
+ FacebookPixel.addToCart(item, quantity, eventId);
24123
24129
  GoogleTagManager.addToCart(item, quantity);
24124
24130
  }
24125
24131
  catch (err) {
@@ -24147,11 +24153,11 @@ var Analytics = /** @class */ (function () {
24147
24153
  console.error(err);
24148
24154
  }
24149
24155
  };
24150
- Analytics.purchase = function (checkout, orderId) {
24156
+ Analytics.purchase = function (checkout, eventId) {
24151
24157
  try {
24152
24158
  localStorage.removeItem(LS_BEGIN_CHECKOUT_KEY);
24153
- FacebookPixel.purchase(checkout, orderId);
24154
- GoogleTagManager.purchase(checkout, orderId);
24159
+ FacebookPixel.purchase(checkout, eventId);
24160
+ GoogleTagManager.purchase(checkout, eventId);
24155
24161
  }
24156
24162
  catch (err) {
24157
24163
  console.error(err);
@@ -24967,11 +24973,15 @@ var IkasCustomerStore = /** @class */ (function () {
24967
24973
  };
24968
24974
  IkasCustomerStore.prototype.onProductView = function (productId, variantId) {
24969
24975
  return __awaiter(this, void 0, void 0, function () {
24970
- var isSuccess;
24976
+ var existingItem, isSuccess;
24971
24977
  return __generator(this, function (_a) {
24972
24978
  switch (_a.label) {
24973
24979
  case 0:
24974
24980
  if (!this.customer) return [3 /*break*/, 2];
24981
+ existingItem = this._lastViewedProducts.find(function (lvp) { return lvp.productId === productId; });
24982
+ if (existingItem) {
24983
+ return [2 /*return*/];
24984
+ }
24975
24985
  return [4 /*yield*/, IkasCustomerAPI.saveLastViewedProducts({
24976
24986
  customerId: this.customer.id,
24977
24987
  products: [
@@ -27627,10 +27637,25 @@ var IkasProductDetail = /** @class */ (function () {
27627
27637
  });
27628
27638
  Object.defineProperty(IkasProductDetail.prototype, "href", {
27629
27639
  get: function () {
27640
+ var _this = this;
27630
27641
  var metaData = this.product.metaData;
27631
27642
  if (!(metaData === null || metaData === void 0 ? void 0 : metaData.slug))
27632
27643
  return "";
27633
- return "/" + metaData.slug;
27644
+ var variantParams = this.product.variantTypes
27645
+ .map(function (pvt) {
27646
+ var vt = pvt.variantType;
27647
+ var selectedVariant = vt.values.find(function (vv) {
27648
+ return _this.selectedVariantValues.some(function (svv) { return svv.id === vv.id; });
27649
+ });
27650
+ if (selectedVariant)
27651
+ return vt.slug + "=" + selectedVariant.slug;
27652
+ })
27653
+ .filter(function (param) { return !!param; })
27654
+ .join("&");
27655
+ if (variantParams)
27656
+ return "/" + metaData.slug + "?" + variantParams;
27657
+ else
27658
+ return "/" + metaData.slug;
27634
27659
  },
27635
27660
  enumerable: false,
27636
27661
  configurable: true
@@ -27697,7 +27722,9 @@ var IkasProductDetail = /** @class */ (function () {
27697
27722
  })
27698
27723
  .filter(function (param) { return !!param; })
27699
27724
  .join("&");
27700
- var newUrl = "/" + metaData.slug + "?" + variantParams;
27725
+ var newUrl = "/" + metaData.slug;
27726
+ if (variantParams)
27727
+ newUrl = "/" + metaData.slug + "?" + variantParams;
27701
27728
  if (newUrl === window.location.pathname)
27702
27729
  return;
27703
27730
  var isShallow = process.env.NODE_ENV !== "production";
@@ -61273,6 +61300,7 @@ var StepSuccess = mobxReactLite.observer(function (_a) {
61273
61300
  var t = useTranslation().t;
61274
61301
  var _f = React.useState(false), isContactModalVisible = _f[0], setContactModalVisible = _f[1];
61275
61302
  React.useEffect(function () {
61303
+ var _a;
61276
61304
  if (typeof localStorage !== "undefined") {
61277
61305
  var lsCartId = localStorage.getItem(CART_LS_KEY);
61278
61306
  var lsCheckoutId = localStorage.getItem(CHECKOUT_LS_KEY);
@@ -61281,7 +61309,7 @@ var StepSuccess = mobxReactLite.observer(function (_a) {
61281
61309
  if (lsCheckoutId && lsCheckoutId === vm.checkout.id)
61282
61310
  localStorage.removeItem(CHECKOUT_LS_KEY);
61283
61311
  }
61284
- Analytics.purchase(vm.checkout, vm.checkout.orderNumber);
61312
+ Analytics.purchase(vm.checkout, ((_a = vm.successTransaction) === null || _a === void 0 ? void 0 : _a.id) || "");
61285
61313
  }, []);
61286
61314
  var customerName = (((_b = vm.checkout.customer) === null || _b === void 0 ? void 0 : _b.firstName) || "") +
61287
61315
  " " +
@@ -61499,11 +61527,28 @@ var OrderStatus = mobxReactLite.observer(function (_a) {
61499
61527
  })) === null || _d === void 0 ? void 0 : _d.text : ""));
61500
61528
  });
61501
61529
 
61530
+ var IMAGE_SIZES = [
61531
+ 180,
61532
+ 360,
61533
+ 540,
61534
+ 720,
61535
+ 900,
61536
+ 1080,
61537
+ 1296,
61538
+ 1512,
61539
+ 1728,
61540
+ 1950,
61541
+ 2560,
61542
+ 3840,
61543
+ ];
61502
61544
  var Image = function (_a) {
61503
61545
  var image = _a.image, others = __rest(_a, ["image"]);
61504
61546
  var loader = function (_a) {
61505
61547
  var width = _a.width;
61506
- return image.getSrc(width);
61548
+ var closest = IMAGE_SIZES.reduce(function (prev, curr) {
61549
+ return Math.abs(curr - width) < Math.abs(prev - width) ? curr : prev;
61550
+ });
61551
+ return image.getSrc(closest);
61507
61552
  };
61508
61553
  return (React.createElement(NextImage__default['default'], __assign({}, others, { loader: loader, quality: 100, src: image.src, alt: others.alt || "Image" })));
61509
61554
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikas/storefront",
3
- "version": "0.0.165-alpha.6",
3
+ "version": "0.0.165-alpha.8",
4
4
  "main": "./build/index.js",
5
5
  "module": "./build/index.es.js",
6
6
  "author": "Umut Ozan Yıldırım",