@ikas/storefront 0.0.160-alpha.9 → 0.0.160

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.
@@ -173,6 +173,7 @@ export declare enum PaymentGatewayTransactionFeeTypeEnum {
173
173
  * Payment Method Enum
174
174
  */
175
175
  export declare enum PaymentMethodEnum {
176
+ APP_PAYMENT = "APP_PAYMENT",
176
177
  BUY_ONLINE_PAY_AT_STORE = "BUY_ONLINE_PAY_AT_STORE",
177
178
  CASH = "CASH",
178
179
  CASH_ON_DELIVERY = "CASH_ON_DELIVERY",
@@ -529,6 +530,7 @@ export interface SaveMyCustomerInput {
529
530
  export interface SearchInput {
530
531
  brandId?: string | null;
531
532
  categoryIdList?: string[] | null;
533
+ facetList?: SearchInputFacetListInput[] | null;
532
534
  filterList?: SearchInputFilterListInput[] | null;
533
535
  order?: SearchInputOrderByInput[] | null;
534
536
  page?: number | null;
@@ -540,7 +542,13 @@ export interface SearchInput {
540
542
  showStockOption?: ProductSearchShowStockOptionEnum | null;
541
543
  slug?: string | null;
542
544
  }
545
+ export interface SearchInputFacetListInput {
546
+ displayType: ProductFilterDisplayTypeEnum;
547
+ id: string;
548
+ type: ProductFilterTypeEnum;
549
+ }
543
550
  export interface SearchInputFilterListInput {
551
+ displayType?: ProductFilterDisplayTypeEnum | null;
544
552
  id: string;
545
553
  type: ProductFilterTypeEnum;
546
554
  useAndFilter?: boolean | null;
@@ -181,7 +181,6 @@ export interface getCustomerOrders_getCustomerOrders {
181
181
  __typename: "Order";
182
182
  billingAddress: getCustomerOrders_getCustomerOrders_billingAddress | null;
183
183
  cancelledAt: any | null;
184
- orderedAt: any | null;
185
184
  cancelReason: CancelledReasonEnum | null;
186
185
  createdAt: any | null;
187
186
  currencyCode: string;
@@ -191,6 +190,7 @@ export interface getCustomerOrders_getCustomerOrders {
191
190
  id: string;
192
191
  merchantId: string;
193
192
  note: string | null;
193
+ orderedAt: any | null;
194
194
  orderAdjustments: getCustomerOrders_getCustomerOrders_orderAdjustments[] | null;
195
195
  orderLineItems: getCustomerOrders_getCustomerOrders_orderLineItems[];
196
196
  orderNumber: string | null;
@@ -20,6 +20,7 @@ export interface getProductFilterData_getProductFilterData_filters {
20
20
  displayType: ProductFilterDisplayTypeEnum;
21
21
  id: string;
22
22
  isMultiSelect: boolean;
23
+ isFacetFilter: boolean | null;
23
24
  key: string;
24
25
  name: string;
25
26
  order: number;
@@ -4,7 +4,7 @@ import * as SearchProductTypes from "./__generated__/searchProducts";
4
4
  import { IkasProductFilter } from "../../models/data/product-filter/index";
5
5
  import { IkasFilterCategory } from "../../models/data/category/index";
6
6
  export declare class IkasProductSearchAPI {
7
- static searchProducts(input: SearchInput): Promise<{
7
+ static searchProducts(input: SearchInput, useStockFilter?: boolean): Promise<{
8
8
  data: IkasProduct[];
9
9
  __typename: "ProductSearchResponse";
10
10
  count: number;
package/build/index.es.js CHANGED
@@ -10906,6 +10906,7 @@ var IkasStorefrontConfig = /** @class */ (function () {
10906
10906
  gtmId: IkasStorefrontConfig.gtmId || null,
10907
10907
  fbpId: IkasStorefrontConfig.fbpId || null,
10908
10908
  favicon: JSON.parse(JSON.stringify(IkasStorefrontConfig.favicon)),
10909
+ stockPreference: IkasStorefrontConfig.stockPreference || null,
10909
10910
  };
10910
10911
  };
10911
10912
  IkasStorefrontConfig.components = {};
@@ -16987,7 +16988,7 @@ var IkasOrderLineItem = /** @class */ (function () {
16987
16988
  this.id = data.id || "";
16988
16989
  this.createdAt = data.createdAt || "";
16989
16990
  this.updatedAt = data.updatedAt || "";
16990
- this.orderedAt = data.orderedAt || "";
16991
+ this.orderedAt = data.orderedAt || 0;
16991
16992
  this.deleted = data.deleted || false;
16992
16993
  this.currencyCode = data.currencyCode || "";
16993
16994
  this.discount = data.discount
@@ -17008,9 +17009,8 @@ var IkasOrderLineItem = /** @class */ (function () {
17008
17009
  Object.defineProperty(IkasOrderLineItem.prototype, "orderedAtDays", {
17009
17010
  get: function () {
17010
17011
  try {
17011
- var orderedAt = moment(new Date(parseInt(this.orderedAt)));
17012
+ var orderedAt = moment(new Date(this.orderedAt));
17012
17013
  var now = moment();
17013
- console.log("diff", now.diff(orderedAt, "days"));
17014
17014
  return now.diff(orderedAt, "days");
17015
17015
  }
17016
17016
  catch (_a) {
@@ -24123,7 +24123,9 @@ var IkasOrder = /** @class */ (function () {
24123
24123
  ? new IkasOrderAddress(data.billingAddress)
24124
24124
  : null;
24125
24125
  this.orderLineItems = data.orderLineItems
24126
- ? data.orderLineItems.map(function (o) { return new IkasOrderLineItem(o); })
24126
+ ? data.orderLineItems.map(function (o) {
24127
+ return new IkasOrderLineItem(__assign(__assign({}, o), { orderedAt: data.orderedAt }));
24128
+ })
24127
24129
  : [];
24128
24130
  this.orderAdjustments = data.orderAdjustments;
24129
24131
  this.shippingLines = data.shippingLines;
@@ -24471,9 +24473,13 @@ var IkasProductVariantType = /** @class */ (function () {
24471
24473
  ? new IkasVariantType(data.variantType)
24472
24474
  : new IkasVariantType();
24473
24475
  this.variantValueIds = data.variantValueIds || [];
24474
- this.variantType.values = this.variantType.values.filter(function (v) {
24475
- return _this.variantValueIds.includes(v.id);
24476
+ var orderedVariantValues = [];
24477
+ this.variantValueIds.forEach(function (vvId) {
24478
+ var variantValue = _this.variantType.values.find(function (vv) { return vv.id === vvId; });
24479
+ if (variantValue)
24480
+ orderedVariantValues.push(variantValue);
24476
24481
  });
24482
+ this.variantType.values = orderedVariantValues;
24477
24483
  makeAutoObservable(this);
24478
24484
  }
24479
24485
  return IkasProductVariantType;
@@ -24570,6 +24576,7 @@ var IkasProductFilter = /** @class */ (function () {
24570
24576
  this.type = data.type || IkasProductFilterType.BRAND;
24571
24577
  this.displayType = data.displayType || IkasProductFilterDisplayType.BOX;
24572
24578
  this.isMultiSelect = data.isMultiSelect || false;
24579
+ this.isFacetFilter = data.isFacetFilter || false;
24573
24580
  this.values = data.values
24574
24581
  ? data.values.map(function (v) { return new IkasApplicableProductFilterValue(v); })
24575
24582
  : null;
@@ -24799,6 +24806,7 @@ var IkasProductFilterValue = /** @class */ (function () {
24799
24806
  function IkasProductFilterValue(data) {
24800
24807
  this.id = data.id;
24801
24808
  this.type = data.type;
24809
+ this.displayType = data.displayType;
24802
24810
  this.valueList = data.valueList;
24803
24811
  makeAutoObservable(this);
24804
24812
  }
@@ -25234,10 +25242,18 @@ var IkasThemeSettings = /** @class */ (function () {
25234
25242
  ? data.colors.map(function (c) { return new IkasThemeColor(c); })
25235
25243
  : [];
25236
25244
  this.favicon = ((_a = data.favicon) === null || _a === void 0 ? void 0 : _a.id) ? data.favicon : new IkasThemeFavicon();
25245
+ this.stockPreference =
25246
+ data.stockPreference || IkasThemeStockPreference.SHOW_ALL;
25237
25247
  makeAutoObservable(this);
25238
25248
  }
25239
25249
  return IkasThemeSettings;
25240
- }());
25250
+ }());
25251
+ var IkasThemeStockPreference;
25252
+ (function (IkasThemeStockPreference) {
25253
+ IkasThemeStockPreference["HIDE_OUT_OF_STOCK"] = "HIDE_OUT_OF_STOCK";
25254
+ IkasThemeStockPreference["SHOW_ALL"] = "SHOW_ALL";
25255
+ IkasThemeStockPreference["SHOW_OUT_OF_STOCK_AT_END"] = "SHOW_OUT_OF_STOCK_AT_END";
25256
+ })(IkasThemeStockPreference || (IkasThemeStockPreference = {}));
25241
25257
 
25242
25258
  var IkasTheme = /** @class */ (function () {
25243
25259
  function IkasTheme(data) {
@@ -27557,6 +27573,7 @@ var PaymentGatewayTransactionFeeTypeEnum;
27557
27573
  */
27558
27574
  var PaymentMethodEnum;
27559
27575
  (function (PaymentMethodEnum) {
27576
+ PaymentMethodEnum["APP_PAYMENT"] = "APP_PAYMENT";
27560
27577
  PaymentMethodEnum["BUY_ONLINE_PAY_AT_STORE"] = "BUY_ONLINE_PAY_AT_STORE";
27561
27578
  PaymentMethodEnum["CASH"] = "CASH";
27562
27579
  PaymentMethodEnum["CASH_ON_DELIVERY"] = "CASH_ON_DELIVERY";
@@ -28287,26 +28304,28 @@ var IkasProductList = /** @class */ (function () {
28287
28304
  IkasProductList.prototype.searchProducts = function (page, limit, productIdList) {
28288
28305
  var _a, _b, _c;
28289
28306
  return __awaiter(this, void 0, void 0, function () {
28290
- var filterList, selectedCategoryIds;
28307
+ var filterList, facetList, selectedCategoryIds;
28291
28308
  return __generator(this, function (_d) {
28292
28309
  switch (_d.label) {
28293
28310
  case 0:
28294
28311
  filterList = [];
28295
- if (this._filterBrandId) {
28296
- filterList.push(new IkasProductFilterValue({
28297
- id: this._filterBrandId,
28298
- type: IkasProductFilterType.BRAND,
28299
- valueList: [this._filterBrandId],
28300
- }));
28301
- }
28312
+ facetList = [];
28302
28313
  (_a = this.filters) === null || _a === void 0 ? void 0 : _a.forEach(function (filter) {
28303
28314
  if (filter.valueList.length) {
28304
28315
  filterList.push(new IkasProductFilterValue({
28305
28316
  id: filter.id,
28306
28317
  type: filter.type,
28318
+ displayType: filter.displayType,
28307
28319
  valueList: filter.valueList,
28308
28320
  }));
28309
28321
  }
28322
+ if (filter.isFacetFilter) {
28323
+ facetList.push({
28324
+ id: filter.id,
28325
+ type: filter.type,
28326
+ displayType: filter.displayType,
28327
+ });
28328
+ }
28310
28329
  });
28311
28330
  selectedCategoryIds = (_b = this._filterCategories) === null || _b === void 0 ? void 0 : _b.filter(function (fc) { return fc.isSelected; }).map(function (fc) { return fc.id; });
28312
28331
  return [4 /*yield*/, IkasProductSearchAPI.searchProducts({
@@ -28315,6 +28334,7 @@ var IkasProductList = /** @class */ (function () {
28315
28334
  productIdList: this.isStatic
28316
28335
  ? (_c = this._productListPropValue.productIds) === null || _c === void 0 ? void 0 : _c.map(function (p) { return p.productId; }) : productIdList,
28317
28336
  filterList: filterList,
28337
+ facetList: facetList,
28318
28338
  brandId: this._pageType === IkasThemePageType.BRAND &&
28319
28339
  this._type !== IkasProductListType.SEARCH
28320
28340
  ? this._filterBrandId
@@ -28328,7 +28348,7 @@ var IkasProductList = /** @class */ (function () {
28328
28348
  salesChannelId: IkasStorefrontConfig.salesChannelId,
28329
28349
  query: this._searchKeyword,
28330
28350
  order: [this.getSortParams()],
28331
- })];
28351
+ }, true)];
28332
28352
  case 1: return [2 /*return*/, _d.sent()];
28333
28353
  }
28334
28354
  });
@@ -32547,7 +32567,7 @@ var IkasPageDataProvider = /** @class */ (function () {
32547
32567
  };
32548
32568
  IkasPageDataProvider.prototype.getPageSpecificProduct = function () {
32549
32569
  return __awaiter(this, void 0, void 0, function () {
32550
- var slug, getProductMetaData, metaDataResponse, productsResponse, product, isMainProductSlug, selectedVariantValues, variantSlugPart, _i, _a, variant, values, slugPart;
32570
+ var slug, getProductMetaData, metaDataResponse, productsResponse, product, isMainProductSlug, selectedVariantValues, variantSlugPart, _i, _a, variant, values, slugPart, displayedVariantType, inStockVariant;
32551
32571
  var _this = this;
32552
32572
  return __generator(this, function (_b) {
32553
32573
  switch (_b.label) {
@@ -32610,6 +32630,19 @@ var IkasPageDataProvider = /** @class */ (function () {
32610
32630
  this.pageSpecificData = new IkasProductDetail(product, selectedVariantValues.length
32611
32631
  ? selectedVariantValues
32612
32632
  : product.variants[0].variantValues);
32633
+ // Select the first displayed in stock variant
32634
+ if (!selectedVariantValues.length &&
32635
+ this.pageSpecificData.displayedVariantTypes.length) {
32636
+ displayedVariantType = this.pageSpecificData
32637
+ .displayedVariantTypes[0];
32638
+ if (displayedVariantType.displayedVariantValues.length) {
32639
+ inStockVariant = displayedVariantType.displayedVariantValues.find(function (dvv) { return dvv.hasStock; });
32640
+ if (inStockVariant) {
32641
+ this.pageSpecificData.selectedVariantValues =
32642
+ inStockVariant.variant.variantValues;
32643
+ }
32644
+ }
32645
+ }
32613
32646
  this.pageType = IkasThemePageType.PRODUCT;
32614
32647
  this.setPageMetaData(metaDataResponse.metaData);
32615
32648
  return [2 /*return*/];
@@ -34573,7 +34606,7 @@ var IkasCustomerAPI = /** @class */ (function () {
34573
34606
  return __generator(this, function (_b) {
34574
34607
  switch (_b.label) {
34575
34608
  case 0:
34576
- QUERY = src(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n query getCustomerOrders($orderId: String) {\n getCustomerOrders(orderId: $orderId) {\n billingAddress {\n addressLine1\n addressLine2\n city {\n code\n id\n name\n }\n company\n country {\n name\n id\n code\n }\n district {\n name\n id\n code\n }\n firstName\n identityNumber\n isDefault\n lastName\n phone\n postalCode\n state {\n name\n id\n code\n }\n taxNumber\n taxOffice\n }\n cancelledAt\n orderedAt\n cancelReason\n createdAt\n currencyCode\n currencyRates {\n rate\n originalRate\n code\n }\n customer {\n lastName\n firstName\n email\n id\n }\n deleted\n id\n merchantId\n note\n orderedAt\n orderAdjustments {\n type\n order\n name\n amountType\n amount\n }\n orderLineItems {\n createdAt\n currencyCode\n deleted\n discount {\n reason\n amountType\n amount\n }\n discountPrice\n finalPrice\n id\n originalOrderLineItemId\n price\n quantity\n status\n statusUpdatedAt\n stockLocationId\n taxValue\n updatedAt\n variant {\n barcodeList\n id\n mainImageId\n name\n productId\n sku\n variantValues {\n variantValueName\n variantValueId\n variantTypeName\n variantTypeId\n order\n }\n }\n }\n orderNumber\n orderPackages {\n updatedAt\n trackingInfo {\n trackingNumber\n trackingLink\n isSendNotification\n cargoCompany\n }\n stockLocationId\n orderPackageNumber\n orderPackageFulfillStatus\n orderLineItemIds\n id\n deleted\n createdAt\n }\n orderPackageStatus\n orderPaymentStatus\n orderTagIds\n shippingAddress {\n taxOffice\n taxNumber\n state {\n name\n id\n code\n }\n postalCode\n phone\n lastName\n isDefault\n identityNumber\n firstName\n district {\n name\n id\n code\n }\n country {\n name\n id\n code\n }\n company\n city {\n id\n code\n name\n }\n addressLine2\n addressLine1\n }\n shippingLines {\n title\n taxValue\n price\n }\n shippingMethod\n status\n taxLines {\n rate\n price\n }\n totalFinalPrice\n totalPrice\n updatedAt\n }\n }\n "], ["\n query getCustomerOrders($orderId: String) {\n getCustomerOrders(orderId: $orderId) {\n billingAddress {\n addressLine1\n addressLine2\n city {\n code\n id\n name\n }\n company\n country {\n name\n id\n code\n }\n district {\n name\n id\n code\n }\n firstName\n identityNumber\n isDefault\n lastName\n phone\n postalCode\n state {\n name\n id\n code\n }\n taxNumber\n taxOffice\n }\n cancelledAt\n orderedAt\n cancelReason\n createdAt\n currencyCode\n currencyRates {\n rate\n originalRate\n code\n }\n customer {\n lastName\n firstName\n email\n id\n }\n deleted\n id\n merchantId\n note\n orderedAt\n orderAdjustments {\n type\n order\n name\n amountType\n amount\n }\n orderLineItems {\n createdAt\n currencyCode\n deleted\n discount {\n reason\n amountType\n amount\n }\n discountPrice\n finalPrice\n id\n originalOrderLineItemId\n price\n quantity\n status\n statusUpdatedAt\n stockLocationId\n taxValue\n updatedAt\n variant {\n barcodeList\n id\n mainImageId\n name\n productId\n sku\n variantValues {\n variantValueName\n variantValueId\n variantTypeName\n variantTypeId\n order\n }\n }\n }\n orderNumber\n orderPackages {\n updatedAt\n trackingInfo {\n trackingNumber\n trackingLink\n isSendNotification\n cargoCompany\n }\n stockLocationId\n orderPackageNumber\n orderPackageFulfillStatus\n orderLineItemIds\n id\n deleted\n createdAt\n }\n orderPackageStatus\n orderPaymentStatus\n orderTagIds\n shippingAddress {\n taxOffice\n taxNumber\n state {\n name\n id\n code\n }\n postalCode\n phone\n lastName\n isDefault\n identityNumber\n firstName\n district {\n name\n id\n code\n }\n country {\n name\n id\n code\n }\n company\n city {\n id\n code\n name\n }\n addressLine2\n addressLine1\n }\n shippingLines {\n title\n taxValue\n price\n }\n shippingMethod\n status\n taxLines {\n rate\n price\n }\n totalFinalPrice\n totalPrice\n updatedAt\n }\n }\n "])));
34609
+ QUERY = src(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n query getCustomerOrders($orderId: String) {\n getCustomerOrders(orderId: $orderId) {\n billingAddress {\n addressLine1\n addressLine2\n city {\n code\n id\n name\n }\n company\n country {\n name\n id\n code\n }\n district {\n name\n id\n code\n }\n firstName\n identityNumber\n isDefault\n lastName\n phone\n postalCode\n state {\n name\n id\n code\n }\n taxNumber\n taxOffice\n }\n cancelledAt\n cancelReason\n createdAt\n currencyCode\n currencyRates {\n rate\n originalRate\n code\n }\n customer {\n lastName\n firstName\n email\n id\n }\n deleted\n id\n merchantId\n note\n orderedAt\n orderAdjustments {\n type\n order\n name\n amountType\n amount\n }\n orderLineItems {\n createdAt\n currencyCode\n deleted\n discount {\n reason\n amountType\n amount\n }\n discountPrice\n finalPrice\n id\n originalOrderLineItemId\n price\n quantity\n status\n statusUpdatedAt\n stockLocationId\n taxValue\n updatedAt\n variant {\n barcodeList\n id\n mainImageId\n name\n productId\n sku\n variantValues {\n variantValueName\n variantValueId\n variantTypeName\n variantTypeId\n order\n }\n }\n }\n orderNumber\n orderPackages {\n updatedAt\n trackingInfo {\n trackingNumber\n trackingLink\n isSendNotification\n cargoCompany\n }\n stockLocationId\n orderPackageNumber\n orderPackageFulfillStatus\n orderLineItemIds\n id\n deleted\n createdAt\n }\n orderPackageStatus\n orderPaymentStatus\n orderTagIds\n shippingAddress {\n taxOffice\n taxNumber\n state {\n name\n id\n code\n }\n postalCode\n phone\n lastName\n isDefault\n identityNumber\n firstName\n district {\n name\n id\n code\n }\n country {\n name\n id\n code\n }\n company\n city {\n id\n code\n name\n }\n addressLine2\n addressLine1\n }\n shippingLines {\n title\n taxValue\n price\n }\n shippingMethod\n status\n taxLines {\n rate\n price\n }\n totalFinalPrice\n totalPrice\n updatedAt\n }\n }\n "], ["\n query getCustomerOrders($orderId: String) {\n getCustomerOrders(orderId: $orderId) {\n billingAddress {\n addressLine1\n addressLine2\n city {\n code\n id\n name\n }\n company\n country {\n name\n id\n code\n }\n district {\n name\n id\n code\n }\n firstName\n identityNumber\n isDefault\n lastName\n phone\n postalCode\n state {\n name\n id\n code\n }\n taxNumber\n taxOffice\n }\n cancelledAt\n cancelReason\n createdAt\n currencyCode\n currencyRates {\n rate\n originalRate\n code\n }\n customer {\n lastName\n firstName\n email\n id\n }\n deleted\n id\n merchantId\n note\n orderedAt\n orderAdjustments {\n type\n order\n name\n amountType\n amount\n }\n orderLineItems {\n createdAt\n currencyCode\n deleted\n discount {\n reason\n amountType\n amount\n }\n discountPrice\n finalPrice\n id\n originalOrderLineItemId\n price\n quantity\n status\n statusUpdatedAt\n stockLocationId\n taxValue\n updatedAt\n variant {\n barcodeList\n id\n mainImageId\n name\n productId\n sku\n variantValues {\n variantValueName\n variantValueId\n variantTypeName\n variantTypeId\n order\n }\n }\n }\n orderNumber\n orderPackages {\n updatedAt\n trackingInfo {\n trackingNumber\n trackingLink\n isSendNotification\n cargoCompany\n }\n stockLocationId\n orderPackageNumber\n orderPackageFulfillStatus\n orderLineItemIds\n id\n deleted\n createdAt\n }\n orderPackageStatus\n orderPaymentStatus\n orderTagIds\n shippingAddress {\n taxOffice\n taxNumber\n state {\n name\n id\n code\n }\n postalCode\n phone\n lastName\n isDefault\n identityNumber\n firstName\n district {\n name\n id\n code\n }\n country {\n name\n id\n code\n }\n company\n city {\n id\n code\n name\n }\n addressLine2\n addressLine1\n }\n shippingLines {\n title\n taxValue\n price\n }\n shippingMethod\n status\n taxLines {\n rate\n price\n }\n totalFinalPrice\n totalPrice\n updatedAt\n }\n }\n "])));
34577
34610
  _b.label = 1;
34578
34611
  case 1:
34579
34612
  _b.trys.push([1, 3, , 4]);
@@ -34986,7 +35019,8 @@ var IkasProductAttributeTableTemplate = /** @class */ (function () {
34986
35019
  var IkasProductSearchAPI = /** @class */ (function () {
34987
35020
  function IkasProductSearchAPI() {
34988
35021
  }
34989
- IkasProductSearchAPI.searchProducts = function (input) {
35022
+ IkasProductSearchAPI.searchProducts = function (input, useStockFilter) {
35023
+ if (useStockFilter === void 0) { useStockFilter = false; }
34990
35024
  return __awaiter(this, void 0, void 0, function () {
34991
35025
  var SEARCH_PRODUCTS, _a, data, errors, err_1;
34992
35026
  return __generator(this, function (_b) {
@@ -34999,7 +35033,9 @@ var IkasProductSearchAPI = /** @class */ (function () {
34999
35033
  .query({
35000
35034
  query: SEARCH_PRODUCTS,
35001
35035
  variables: {
35002
- input: input,
35036
+ input: __assign(__assign({}, input), { showStockOption: useStockFilter
35037
+ ? IkasStorefrontConfig.stockPreference
35038
+ : IkasThemeStockPreference.SHOW_ALL }),
35003
35039
  },
35004
35040
  })];
35005
35041
  case 1:
@@ -35027,7 +35063,7 @@ var IkasProductSearchAPI = /** @class */ (function () {
35027
35063
  switch (_b.label) {
35028
35064
  case 0:
35029
35065
  _b.trys.push([0, 2, , 3]);
35030
- QUERY = src(templateObject_2$6 || (templateObject_2$6 = __makeTemplateObject(["\n query getProductFilterData($categoryId: String) {\n getProductFilterData(categoryId: $categoryId) {\n filters {\n customValues\n displayType\n id\n isMultiSelect\n key\n name\n order\n type\n values {\n colorCode\n id\n key\n name\n thumbnailImageId\n }\n settings {\n showCollapsedOnDesktop\n showCollapsedOnMobile\n sortType\n useAndFilter\n }\n }\n categories {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "], ["\n query getProductFilterData($categoryId: String) {\n getProductFilterData(categoryId: $categoryId) {\n filters {\n customValues\n displayType\n id\n isMultiSelect\n key\n name\n order\n type\n values {\n colorCode\n id\n key\n name\n thumbnailImageId\n }\n settings {\n showCollapsedOnDesktop\n showCollapsedOnMobile\n sortType\n useAndFilter\n }\n }\n categories {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "])));
35066
+ QUERY = src(templateObject_2$6 || (templateObject_2$6 = __makeTemplateObject(["\n query getProductFilterData($categoryId: String) {\n getProductFilterData(categoryId: $categoryId) {\n filters {\n customValues\n displayType\n id\n isMultiSelect\n isFacetFilter\n key\n name\n order\n type\n values {\n colorCode\n id\n key\n name\n thumbnailImageId\n }\n settings {\n showCollapsedOnDesktop\n showCollapsedOnMobile\n sortType\n useAndFilter\n }\n }\n categories {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "], ["\n query getProductFilterData($categoryId: String) {\n getProductFilterData(categoryId: $categoryId) {\n filters {\n customValues\n displayType\n id\n isMultiSelect\n isFacetFilter\n key\n name\n order\n type\n values {\n colorCode\n id\n key\n name\n thumbnailImageId\n }\n settings {\n showCollapsedOnDesktop\n showCollapsedOnMobile\n sortType\n useAndFilter\n }\n }\n categories {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "])));
35031
35067
  return [4 /*yield*/, apollo
35032
35068
  .getClient()
35033
35069
  .query({
@@ -37870,6 +37906,7 @@ var SettingsHelper = /** @class */ (function () {
37870
37906
  storefront.routings[0]
37871
37907
  : new IkasStorefrontRouting({}),
37872
37908
  favicon: localTheme.settings.favicon,
37909
+ stockPreference: localTheme.settings.stockPreference,
37873
37910
  });
37874
37911
  return [3 /*break*/, 5];
37875
37912
  case 3: return [4 /*yield*/, SettingsHelper.readSettingsFile()];
@@ -37897,12 +37934,14 @@ var SettingsHelper = /** @class */ (function () {
37897
37934
  var result = file.length ? JSON.parse(file.toString()) : {};
37898
37935
  var themeLocalization = new IkasStorefrontThemeLocalization(result);
37899
37936
  var favicon = themeLocalization.themeJson.settings.favicon;
37937
+ var stockPreference = themeLocalization.themeJson.settings.stockPreference;
37900
37938
  resolve({
37901
37939
  storefront: storefront_1,
37902
37940
  themeLocalization: themeLocalization,
37903
37941
  salesChannel: salesChannel_1,
37904
37942
  routing: routing_1,
37905
37943
  favicon: favicon,
37944
+ stockPreference: stockPreference,
37906
37945
  });
37907
37946
  });
37908
37947
  _a.label = 5;
@@ -37914,7 +37953,7 @@ var SettingsHelper = /** @class */ (function () {
37914
37953
  SettingsHelper.getPageData = function (context, isServer, pageType, possiblePageTypes) {
37915
37954
  var _a;
37916
37955
  return __awaiter(this, void 0, void 0, function () {
37917
- var isLocal, locale, settings, storefront, themeLocalization, salesChannel, routing, favicon, provider;
37956
+ var isLocal, locale, settings, storefront, themeLocalization, salesChannel, routing, favicon, stockPreference, provider;
37918
37957
  return __generator(this, function (_b) {
37919
37958
  switch (_b.label) {
37920
37959
  case 0:
@@ -37937,7 +37976,7 @@ var SettingsHelper = /** @class */ (function () {
37937
37976
  notFound: true,
37938
37977
  }];
37939
37978
  }
37940
- storefront = settings.storefront, themeLocalization = settings.themeLocalization, salesChannel = settings.salesChannel, routing = settings.routing, favicon = settings.favicon;
37979
+ storefront = settings.storefront, themeLocalization = settings.themeLocalization, salesChannel = settings.salesChannel, routing = settings.routing, favicon = settings.favicon, stockPreference = settings.stockPreference;
37941
37980
  IkasStorefrontConfig.storefrontId = storefront.id;
37942
37981
  IkasStorefrontConfig.storefrontRoutingId = routing.id;
37943
37982
  IkasStorefrontConfig.storefrontThemeId = storefront.mainStorefrontThemeId;
@@ -37949,6 +37988,7 @@ var SettingsHelper = /** @class */ (function () {
37949
37988
  IkasStorefrontConfig.gtmId = storefront.gtmId || undefined;
37950
37989
  IkasStorefrontConfig.fbpId = storefront.fbpId || undefined;
37951
37990
  IkasStorefrontConfig.favicon = favicon || null;
37991
+ IkasStorefrontConfig.stockPreference = stockPreference || null;
37952
37992
  provider = new IkasPageDataProvider(themeLocalization.themeJson, context.params, pageType);
37953
37993
  provider.possiblePageTypes = possiblePageTypes;
37954
37994
  return [4 /*yield*/, provider.getPageData()];
package/build/index.js CHANGED
@@ -10921,6 +10921,7 @@ var IkasStorefrontConfig = /** @class */ (function () {
10921
10921
  gtmId: IkasStorefrontConfig.gtmId || null,
10922
10922
  fbpId: IkasStorefrontConfig.fbpId || null,
10923
10923
  favicon: JSON.parse(JSON.stringify(IkasStorefrontConfig.favicon)),
10924
+ stockPreference: IkasStorefrontConfig.stockPreference || null,
10924
10925
  };
10925
10926
  };
10926
10927
  IkasStorefrontConfig.components = {};
@@ -17001,7 +17002,7 @@ var IkasOrderLineItem = /** @class */ (function () {
17001
17002
  this.id = data.id || "";
17002
17003
  this.createdAt = data.createdAt || "";
17003
17004
  this.updatedAt = data.updatedAt || "";
17004
- this.orderedAt = data.orderedAt || "";
17005
+ this.orderedAt = data.orderedAt || 0;
17005
17006
  this.deleted = data.deleted || false;
17006
17007
  this.currencyCode = data.currencyCode || "";
17007
17008
  this.discount = data.discount
@@ -17022,9 +17023,8 @@ var IkasOrderLineItem = /** @class */ (function () {
17022
17023
  Object.defineProperty(IkasOrderLineItem.prototype, "orderedAtDays", {
17023
17024
  get: function () {
17024
17025
  try {
17025
- var orderedAt = moment(new Date(parseInt(this.orderedAt)));
17026
+ var orderedAt = moment(new Date(this.orderedAt));
17026
17027
  var now = moment();
17027
- console.log("diff", now.diff(orderedAt, "days"));
17028
17028
  return now.diff(orderedAt, "days");
17029
17029
  }
17030
17030
  catch (_a) {
@@ -24129,7 +24129,9 @@ var IkasOrder = /** @class */ (function () {
24129
24129
  ? new IkasOrderAddress(data.billingAddress)
24130
24130
  : null;
24131
24131
  this.orderLineItems = data.orderLineItems
24132
- ? data.orderLineItems.map(function (o) { return new IkasOrderLineItem(o); })
24132
+ ? data.orderLineItems.map(function (o) {
24133
+ return new IkasOrderLineItem(__assign(__assign({}, o), { orderedAt: data.orderedAt }));
24134
+ })
24133
24135
  : [];
24134
24136
  this.orderAdjustments = data.orderAdjustments;
24135
24137
  this.shippingLines = data.shippingLines;
@@ -24467,9 +24469,13 @@ var IkasProductVariantType = /** @class */ (function () {
24467
24469
  ? new IkasVariantType(data.variantType)
24468
24470
  : new IkasVariantType();
24469
24471
  this.variantValueIds = data.variantValueIds || [];
24470
- this.variantType.values = this.variantType.values.filter(function (v) {
24471
- return _this.variantValueIds.includes(v.id);
24472
+ var orderedVariantValues = [];
24473
+ this.variantValueIds.forEach(function (vvId) {
24474
+ var variantValue = _this.variantType.values.find(function (vv) { return vv.id === vvId; });
24475
+ if (variantValue)
24476
+ orderedVariantValues.push(variantValue);
24472
24477
  });
24478
+ this.variantType.values = orderedVariantValues;
24473
24479
  mobx.makeAutoObservable(this);
24474
24480
  }
24475
24481
  return IkasProductVariantType;
@@ -24565,6 +24571,7 @@ var IkasProductFilter = /** @class */ (function () {
24565
24571
  this.type = data.type || exports.IkasProductFilterType.BRAND;
24566
24572
  this.displayType = data.displayType || exports.IkasProductFilterDisplayType.BOX;
24567
24573
  this.isMultiSelect = data.isMultiSelect || false;
24574
+ this.isFacetFilter = data.isFacetFilter || false;
24568
24575
  this.values = data.values
24569
24576
  ? data.values.map(function (v) { return new IkasApplicableProductFilterValue(v); })
24570
24577
  : null;
@@ -24794,6 +24801,7 @@ var IkasProductFilterValue = /** @class */ (function () {
24794
24801
  function IkasProductFilterValue(data) {
24795
24802
  this.id = data.id;
24796
24803
  this.type = data.type;
24804
+ this.displayType = data.displayType;
24797
24805
  this.valueList = data.valueList;
24798
24806
  mobx.makeAutoObservable(this);
24799
24807
  }
@@ -25222,10 +25230,18 @@ var IkasThemeSettings = /** @class */ (function () {
25222
25230
  ? data.colors.map(function (c) { return new IkasThemeColor(c); })
25223
25231
  : [];
25224
25232
  this.favicon = ((_a = data.favicon) === null || _a === void 0 ? void 0 : _a.id) ? data.favicon : new IkasThemeFavicon();
25233
+ this.stockPreference =
25234
+ data.stockPreference || IkasThemeStockPreference.SHOW_ALL;
25225
25235
  mobx.makeAutoObservable(this);
25226
25236
  }
25227
25237
  return IkasThemeSettings;
25228
- }());
25238
+ }());
25239
+ var IkasThemeStockPreference;
25240
+ (function (IkasThemeStockPreference) {
25241
+ IkasThemeStockPreference["HIDE_OUT_OF_STOCK"] = "HIDE_OUT_OF_STOCK";
25242
+ IkasThemeStockPreference["SHOW_ALL"] = "SHOW_ALL";
25243
+ IkasThemeStockPreference["SHOW_OUT_OF_STOCK_AT_END"] = "SHOW_OUT_OF_STOCK_AT_END";
25244
+ })(IkasThemeStockPreference || (IkasThemeStockPreference = {}));
25229
25245
 
25230
25246
  var IkasTheme = /** @class */ (function () {
25231
25247
  function IkasTheme(data) {
@@ -27538,6 +27554,7 @@ var PaymentGatewayTransactionFeeTypeEnum;
27538
27554
  */
27539
27555
  var PaymentMethodEnum;
27540
27556
  (function (PaymentMethodEnum) {
27557
+ PaymentMethodEnum["APP_PAYMENT"] = "APP_PAYMENT";
27541
27558
  PaymentMethodEnum["BUY_ONLINE_PAY_AT_STORE"] = "BUY_ONLINE_PAY_AT_STORE";
27542
27559
  PaymentMethodEnum["CASH"] = "CASH";
27543
27560
  PaymentMethodEnum["CASH_ON_DELIVERY"] = "CASH_ON_DELIVERY";
@@ -28268,26 +28285,28 @@ var IkasProductList = /** @class */ (function () {
28268
28285
  IkasProductList.prototype.searchProducts = function (page, limit, productIdList) {
28269
28286
  var _a, _b, _c;
28270
28287
  return __awaiter(this, void 0, void 0, function () {
28271
- var filterList, selectedCategoryIds;
28288
+ var filterList, facetList, selectedCategoryIds;
28272
28289
  return __generator(this, function (_d) {
28273
28290
  switch (_d.label) {
28274
28291
  case 0:
28275
28292
  filterList = [];
28276
- if (this._filterBrandId) {
28277
- filterList.push(new IkasProductFilterValue({
28278
- id: this._filterBrandId,
28279
- type: exports.IkasProductFilterType.BRAND,
28280
- valueList: [this._filterBrandId],
28281
- }));
28282
- }
28293
+ facetList = [];
28283
28294
  (_a = this.filters) === null || _a === void 0 ? void 0 : _a.forEach(function (filter) {
28284
28295
  if (filter.valueList.length) {
28285
28296
  filterList.push(new IkasProductFilterValue({
28286
28297
  id: filter.id,
28287
28298
  type: filter.type,
28299
+ displayType: filter.displayType,
28288
28300
  valueList: filter.valueList,
28289
28301
  }));
28290
28302
  }
28303
+ if (filter.isFacetFilter) {
28304
+ facetList.push({
28305
+ id: filter.id,
28306
+ type: filter.type,
28307
+ displayType: filter.displayType,
28308
+ });
28309
+ }
28291
28310
  });
28292
28311
  selectedCategoryIds = (_b = this._filterCategories) === null || _b === void 0 ? void 0 : _b.filter(function (fc) { return fc.isSelected; }).map(function (fc) { return fc.id; });
28293
28312
  return [4 /*yield*/, IkasProductSearchAPI.searchProducts({
@@ -28296,6 +28315,7 @@ var IkasProductList = /** @class */ (function () {
28296
28315
  productIdList: this.isStatic
28297
28316
  ? (_c = this._productListPropValue.productIds) === null || _c === void 0 ? void 0 : _c.map(function (p) { return p.productId; }) : productIdList,
28298
28317
  filterList: filterList,
28318
+ facetList: facetList,
28299
28319
  brandId: this._pageType === exports.IkasThemePageType.BRAND &&
28300
28320
  this._type !== exports.IkasProductListType.SEARCH
28301
28321
  ? this._filterBrandId
@@ -28309,7 +28329,7 @@ var IkasProductList = /** @class */ (function () {
28309
28329
  salesChannelId: IkasStorefrontConfig.salesChannelId,
28310
28330
  query: this._searchKeyword,
28311
28331
  order: [this.getSortParams()],
28312
- })];
28332
+ }, true)];
28313
28333
  case 1: return [2 /*return*/, _d.sent()];
28314
28334
  }
28315
28335
  });
@@ -32525,7 +32545,7 @@ var IkasPageDataProvider = /** @class */ (function () {
32525
32545
  };
32526
32546
  IkasPageDataProvider.prototype.getPageSpecificProduct = function () {
32527
32547
  return __awaiter(this, void 0, void 0, function () {
32528
- var slug, getProductMetaData, metaDataResponse, productsResponse, product, isMainProductSlug, selectedVariantValues, variantSlugPart, _i, _a, variant, values, slugPart;
32548
+ var slug, getProductMetaData, metaDataResponse, productsResponse, product, isMainProductSlug, selectedVariantValues, variantSlugPart, _i, _a, variant, values, slugPart, displayedVariantType, inStockVariant;
32529
32549
  var _this = this;
32530
32550
  return __generator(this, function (_b) {
32531
32551
  switch (_b.label) {
@@ -32588,6 +32608,19 @@ var IkasPageDataProvider = /** @class */ (function () {
32588
32608
  this.pageSpecificData = new IkasProductDetail(product, selectedVariantValues.length
32589
32609
  ? selectedVariantValues
32590
32610
  : product.variants[0].variantValues);
32611
+ // Select the first displayed in stock variant
32612
+ if (!selectedVariantValues.length &&
32613
+ this.pageSpecificData.displayedVariantTypes.length) {
32614
+ displayedVariantType = this.pageSpecificData
32615
+ .displayedVariantTypes[0];
32616
+ if (displayedVariantType.displayedVariantValues.length) {
32617
+ inStockVariant = displayedVariantType.displayedVariantValues.find(function (dvv) { return dvv.hasStock; });
32618
+ if (inStockVariant) {
32619
+ this.pageSpecificData.selectedVariantValues =
32620
+ inStockVariant.variant.variantValues;
32621
+ }
32622
+ }
32623
+ }
32591
32624
  this.pageType = exports.IkasThemePageType.PRODUCT;
32592
32625
  this.setPageMetaData(metaDataResponse.metaData);
32593
32626
  return [2 /*return*/];
@@ -34550,7 +34583,7 @@ var IkasCustomerAPI = /** @class */ (function () {
34550
34583
  return __generator(this, function (_b) {
34551
34584
  switch (_b.label) {
34552
34585
  case 0:
34553
- QUERY = src(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n query getCustomerOrders($orderId: String) {\n getCustomerOrders(orderId: $orderId) {\n billingAddress {\n addressLine1\n addressLine2\n city {\n code\n id\n name\n }\n company\n country {\n name\n id\n code\n }\n district {\n name\n id\n code\n }\n firstName\n identityNumber\n isDefault\n lastName\n phone\n postalCode\n state {\n name\n id\n code\n }\n taxNumber\n taxOffice\n }\n cancelledAt\n orderedAt\n cancelReason\n createdAt\n currencyCode\n currencyRates {\n rate\n originalRate\n code\n }\n customer {\n lastName\n firstName\n email\n id\n }\n deleted\n id\n merchantId\n note\n orderedAt\n orderAdjustments {\n type\n order\n name\n amountType\n amount\n }\n orderLineItems {\n createdAt\n currencyCode\n deleted\n discount {\n reason\n amountType\n amount\n }\n discountPrice\n finalPrice\n id\n originalOrderLineItemId\n price\n quantity\n status\n statusUpdatedAt\n stockLocationId\n taxValue\n updatedAt\n variant {\n barcodeList\n id\n mainImageId\n name\n productId\n sku\n variantValues {\n variantValueName\n variantValueId\n variantTypeName\n variantTypeId\n order\n }\n }\n }\n orderNumber\n orderPackages {\n updatedAt\n trackingInfo {\n trackingNumber\n trackingLink\n isSendNotification\n cargoCompany\n }\n stockLocationId\n orderPackageNumber\n orderPackageFulfillStatus\n orderLineItemIds\n id\n deleted\n createdAt\n }\n orderPackageStatus\n orderPaymentStatus\n orderTagIds\n shippingAddress {\n taxOffice\n taxNumber\n state {\n name\n id\n code\n }\n postalCode\n phone\n lastName\n isDefault\n identityNumber\n firstName\n district {\n name\n id\n code\n }\n country {\n name\n id\n code\n }\n company\n city {\n id\n code\n name\n }\n addressLine2\n addressLine1\n }\n shippingLines {\n title\n taxValue\n price\n }\n shippingMethod\n status\n taxLines {\n rate\n price\n }\n totalFinalPrice\n totalPrice\n updatedAt\n }\n }\n "], ["\n query getCustomerOrders($orderId: String) {\n getCustomerOrders(orderId: $orderId) {\n billingAddress {\n addressLine1\n addressLine2\n city {\n code\n id\n name\n }\n company\n country {\n name\n id\n code\n }\n district {\n name\n id\n code\n }\n firstName\n identityNumber\n isDefault\n lastName\n phone\n postalCode\n state {\n name\n id\n code\n }\n taxNumber\n taxOffice\n }\n cancelledAt\n orderedAt\n cancelReason\n createdAt\n currencyCode\n currencyRates {\n rate\n originalRate\n code\n }\n customer {\n lastName\n firstName\n email\n id\n }\n deleted\n id\n merchantId\n note\n orderedAt\n orderAdjustments {\n type\n order\n name\n amountType\n amount\n }\n orderLineItems {\n createdAt\n currencyCode\n deleted\n discount {\n reason\n amountType\n amount\n }\n discountPrice\n finalPrice\n id\n originalOrderLineItemId\n price\n quantity\n status\n statusUpdatedAt\n stockLocationId\n taxValue\n updatedAt\n variant {\n barcodeList\n id\n mainImageId\n name\n productId\n sku\n variantValues {\n variantValueName\n variantValueId\n variantTypeName\n variantTypeId\n order\n }\n }\n }\n orderNumber\n orderPackages {\n updatedAt\n trackingInfo {\n trackingNumber\n trackingLink\n isSendNotification\n cargoCompany\n }\n stockLocationId\n orderPackageNumber\n orderPackageFulfillStatus\n orderLineItemIds\n id\n deleted\n createdAt\n }\n orderPackageStatus\n orderPaymentStatus\n orderTagIds\n shippingAddress {\n taxOffice\n taxNumber\n state {\n name\n id\n code\n }\n postalCode\n phone\n lastName\n isDefault\n identityNumber\n firstName\n district {\n name\n id\n code\n }\n country {\n name\n id\n code\n }\n company\n city {\n id\n code\n name\n }\n addressLine2\n addressLine1\n }\n shippingLines {\n title\n taxValue\n price\n }\n shippingMethod\n status\n taxLines {\n rate\n price\n }\n totalFinalPrice\n totalPrice\n updatedAt\n }\n }\n "])));
34586
+ QUERY = src(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n query getCustomerOrders($orderId: String) {\n getCustomerOrders(orderId: $orderId) {\n billingAddress {\n addressLine1\n addressLine2\n city {\n code\n id\n name\n }\n company\n country {\n name\n id\n code\n }\n district {\n name\n id\n code\n }\n firstName\n identityNumber\n isDefault\n lastName\n phone\n postalCode\n state {\n name\n id\n code\n }\n taxNumber\n taxOffice\n }\n cancelledAt\n cancelReason\n createdAt\n currencyCode\n currencyRates {\n rate\n originalRate\n code\n }\n customer {\n lastName\n firstName\n email\n id\n }\n deleted\n id\n merchantId\n note\n orderedAt\n orderAdjustments {\n type\n order\n name\n amountType\n amount\n }\n orderLineItems {\n createdAt\n currencyCode\n deleted\n discount {\n reason\n amountType\n amount\n }\n discountPrice\n finalPrice\n id\n originalOrderLineItemId\n price\n quantity\n status\n statusUpdatedAt\n stockLocationId\n taxValue\n updatedAt\n variant {\n barcodeList\n id\n mainImageId\n name\n productId\n sku\n variantValues {\n variantValueName\n variantValueId\n variantTypeName\n variantTypeId\n order\n }\n }\n }\n orderNumber\n orderPackages {\n updatedAt\n trackingInfo {\n trackingNumber\n trackingLink\n isSendNotification\n cargoCompany\n }\n stockLocationId\n orderPackageNumber\n orderPackageFulfillStatus\n orderLineItemIds\n id\n deleted\n createdAt\n }\n orderPackageStatus\n orderPaymentStatus\n orderTagIds\n shippingAddress {\n taxOffice\n taxNumber\n state {\n name\n id\n code\n }\n postalCode\n phone\n lastName\n isDefault\n identityNumber\n firstName\n district {\n name\n id\n code\n }\n country {\n name\n id\n code\n }\n company\n city {\n id\n code\n name\n }\n addressLine2\n addressLine1\n }\n shippingLines {\n title\n taxValue\n price\n }\n shippingMethod\n status\n taxLines {\n rate\n price\n }\n totalFinalPrice\n totalPrice\n updatedAt\n }\n }\n "], ["\n query getCustomerOrders($orderId: String) {\n getCustomerOrders(orderId: $orderId) {\n billingAddress {\n addressLine1\n addressLine2\n city {\n code\n id\n name\n }\n company\n country {\n name\n id\n code\n }\n district {\n name\n id\n code\n }\n firstName\n identityNumber\n isDefault\n lastName\n phone\n postalCode\n state {\n name\n id\n code\n }\n taxNumber\n taxOffice\n }\n cancelledAt\n cancelReason\n createdAt\n currencyCode\n currencyRates {\n rate\n originalRate\n code\n }\n customer {\n lastName\n firstName\n email\n id\n }\n deleted\n id\n merchantId\n note\n orderedAt\n orderAdjustments {\n type\n order\n name\n amountType\n amount\n }\n orderLineItems {\n createdAt\n currencyCode\n deleted\n discount {\n reason\n amountType\n amount\n }\n discountPrice\n finalPrice\n id\n originalOrderLineItemId\n price\n quantity\n status\n statusUpdatedAt\n stockLocationId\n taxValue\n updatedAt\n variant {\n barcodeList\n id\n mainImageId\n name\n productId\n sku\n variantValues {\n variantValueName\n variantValueId\n variantTypeName\n variantTypeId\n order\n }\n }\n }\n orderNumber\n orderPackages {\n updatedAt\n trackingInfo {\n trackingNumber\n trackingLink\n isSendNotification\n cargoCompany\n }\n stockLocationId\n orderPackageNumber\n orderPackageFulfillStatus\n orderLineItemIds\n id\n deleted\n createdAt\n }\n orderPackageStatus\n orderPaymentStatus\n orderTagIds\n shippingAddress {\n taxOffice\n taxNumber\n state {\n name\n id\n code\n }\n postalCode\n phone\n lastName\n isDefault\n identityNumber\n firstName\n district {\n name\n id\n code\n }\n country {\n name\n id\n code\n }\n company\n city {\n id\n code\n name\n }\n addressLine2\n addressLine1\n }\n shippingLines {\n title\n taxValue\n price\n }\n shippingMethod\n status\n taxLines {\n rate\n price\n }\n totalFinalPrice\n totalPrice\n updatedAt\n }\n }\n "])));
34554
34587
  _b.label = 1;
34555
34588
  case 1:
34556
34589
  _b.trys.push([1, 3, , 4]);
@@ -34963,7 +34996,8 @@ var IkasProductAttributeTableTemplate = /** @class */ (function () {
34963
34996
  var IkasProductSearchAPI = /** @class */ (function () {
34964
34997
  function IkasProductSearchAPI() {
34965
34998
  }
34966
- IkasProductSearchAPI.searchProducts = function (input) {
34999
+ IkasProductSearchAPI.searchProducts = function (input, useStockFilter) {
35000
+ if (useStockFilter === void 0) { useStockFilter = false; }
34967
35001
  return __awaiter(this, void 0, void 0, function () {
34968
35002
  var SEARCH_PRODUCTS, _a, data, errors, err_1;
34969
35003
  return __generator(this, function (_b) {
@@ -34976,7 +35010,9 @@ var IkasProductSearchAPI = /** @class */ (function () {
34976
35010
  .query({
34977
35011
  query: SEARCH_PRODUCTS,
34978
35012
  variables: {
34979
- input: input,
35013
+ input: __assign(__assign({}, input), { showStockOption: useStockFilter
35014
+ ? IkasStorefrontConfig.stockPreference
35015
+ : IkasThemeStockPreference.SHOW_ALL }),
34980
35016
  },
34981
35017
  })];
34982
35018
  case 1:
@@ -35004,7 +35040,7 @@ var IkasProductSearchAPI = /** @class */ (function () {
35004
35040
  switch (_b.label) {
35005
35041
  case 0:
35006
35042
  _b.trys.push([0, 2, , 3]);
35007
- QUERY = src(templateObject_2$6 || (templateObject_2$6 = __makeTemplateObject(["\n query getProductFilterData($categoryId: String) {\n getProductFilterData(categoryId: $categoryId) {\n filters {\n customValues\n displayType\n id\n isMultiSelect\n key\n name\n order\n type\n values {\n colorCode\n id\n key\n name\n thumbnailImageId\n }\n settings {\n showCollapsedOnDesktop\n showCollapsedOnMobile\n sortType\n useAndFilter\n }\n }\n categories {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "], ["\n query getProductFilterData($categoryId: String) {\n getProductFilterData(categoryId: $categoryId) {\n filters {\n customValues\n displayType\n id\n isMultiSelect\n key\n name\n order\n type\n values {\n colorCode\n id\n key\n name\n thumbnailImageId\n }\n settings {\n showCollapsedOnDesktop\n showCollapsedOnMobile\n sortType\n useAndFilter\n }\n }\n categories {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "])));
35043
+ QUERY = src(templateObject_2$6 || (templateObject_2$6 = __makeTemplateObject(["\n query getProductFilterData($categoryId: String) {\n getProductFilterData(categoryId: $categoryId) {\n filters {\n customValues\n displayType\n id\n isMultiSelect\n isFacetFilter\n key\n name\n order\n type\n values {\n colorCode\n id\n key\n name\n thumbnailImageId\n }\n settings {\n showCollapsedOnDesktop\n showCollapsedOnMobile\n sortType\n useAndFilter\n }\n }\n categories {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "], ["\n query getProductFilterData($categoryId: String) {\n getProductFilterData(categoryId: $categoryId) {\n filters {\n customValues\n displayType\n id\n isMultiSelect\n isFacetFilter\n key\n name\n order\n type\n values {\n colorCode\n id\n key\n name\n thumbnailImageId\n }\n settings {\n showCollapsedOnDesktop\n showCollapsedOnMobile\n sortType\n useAndFilter\n }\n }\n categories {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "])));
35008
35044
  return [4 /*yield*/, apollo
35009
35045
  .getClient()
35010
35046
  .query({
@@ -37847,6 +37883,7 @@ var SettingsHelper = /** @class */ (function () {
37847
37883
  storefront.routings[0]
37848
37884
  : new IkasStorefrontRouting({}),
37849
37885
  favicon: localTheme.settings.favicon,
37886
+ stockPreference: localTheme.settings.stockPreference,
37850
37887
  });
37851
37888
  return [3 /*break*/, 5];
37852
37889
  case 3: return [4 /*yield*/, SettingsHelper.readSettingsFile()];
@@ -37874,12 +37911,14 @@ var SettingsHelper = /** @class */ (function () {
37874
37911
  var result = file.length ? JSON.parse(file.toString()) : {};
37875
37912
  var themeLocalization = new IkasStorefrontThemeLocalization(result);
37876
37913
  var favicon = themeLocalization.themeJson.settings.favicon;
37914
+ var stockPreference = themeLocalization.themeJson.settings.stockPreference;
37877
37915
  resolve({
37878
37916
  storefront: storefront_1,
37879
37917
  themeLocalization: themeLocalization,
37880
37918
  salesChannel: salesChannel_1,
37881
37919
  routing: routing_1,
37882
37920
  favicon: favicon,
37921
+ stockPreference: stockPreference,
37883
37922
  });
37884
37923
  });
37885
37924
  _a.label = 5;
@@ -37891,7 +37930,7 @@ var SettingsHelper = /** @class */ (function () {
37891
37930
  SettingsHelper.getPageData = function (context, isServer, pageType, possiblePageTypes) {
37892
37931
  var _a;
37893
37932
  return __awaiter(this, void 0, void 0, function () {
37894
- var isLocal, locale, settings, storefront, themeLocalization, salesChannel, routing, favicon, provider;
37933
+ var isLocal, locale, settings, storefront, themeLocalization, salesChannel, routing, favicon, stockPreference, provider;
37895
37934
  return __generator(this, function (_b) {
37896
37935
  switch (_b.label) {
37897
37936
  case 0:
@@ -37914,7 +37953,7 @@ var SettingsHelper = /** @class */ (function () {
37914
37953
  notFound: true,
37915
37954
  }];
37916
37955
  }
37917
- storefront = settings.storefront, themeLocalization = settings.themeLocalization, salesChannel = settings.salesChannel, routing = settings.routing, favicon = settings.favicon;
37956
+ storefront = settings.storefront, themeLocalization = settings.themeLocalization, salesChannel = settings.salesChannel, routing = settings.routing, favicon = settings.favicon, stockPreference = settings.stockPreference;
37918
37957
  IkasStorefrontConfig.storefrontId = storefront.id;
37919
37958
  IkasStorefrontConfig.storefrontRoutingId = routing.id;
37920
37959
  IkasStorefrontConfig.storefrontThemeId = storefront.mainStorefrontThemeId;
@@ -37926,6 +37965,7 @@ var SettingsHelper = /** @class */ (function () {
37926
37965
  IkasStorefrontConfig.gtmId = storefront.gtmId || undefined;
37927
37966
  IkasStorefrontConfig.fbpId = storefront.fbpId || undefined;
37928
37967
  IkasStorefrontConfig.favicon = favicon || null;
37968
+ IkasStorefrontConfig.stockPreference = stockPreference || null;
37929
37969
  provider = new IkasPageDataProvider(themeLocalization.themeJson, context.params, pageType);
37930
37970
  provider.possiblePageTypes = possiblePageTypes;
37931
37971
  return [4 /*yield*/, provider.getPageData()];
@@ -4,7 +4,7 @@ export declare class IkasOrderLineItem {
4
4
  id: string;
5
5
  createdAt: string;
6
6
  updatedAt: string;
7
- orderedAt: string;
7
+ orderedAt: number;
8
8
  deleted: boolean;
9
9
  currencyCode: string;
10
10
  discount?: IkasOrderLineDiscount | null;
@@ -9,6 +9,7 @@ export declare class IkasProductFilter {
9
9
  type: IkasProductFilterType;
10
10
  displayType: IkasProductFilterDisplayType;
11
11
  isMultiSelect: boolean;
12
+ isFacetFilter: boolean | null;
12
13
  values?: IkasApplicableProductFilterValue[] | null;
13
14
  customValues?: string[] | null;
14
15
  settings?: IkasProductFilterSettings | null;
@@ -49,6 +50,7 @@ export declare class IkasApplicableProductFilterValue {
49
50
  export declare class IkasProductFilterValue {
50
51
  id: string;
51
52
  type: IkasProductFilterType;
53
+ displayType: IkasProductFilterDisplayType;
52
54
  valueList: string[];
53
55
  constructor(data: IkasProductFilterValue);
54
56
  }
@@ -59,6 +61,11 @@ export declare class IkasProductFilterSettings {
59
61
  sortType: IkasProductFilterSortType;
60
62
  constructor(data: Partial<IkasProductFilterSettings>);
61
63
  }
64
+ export declare type IkasProductFacetInput = {
65
+ id: string;
66
+ type: IkasProductFilterType;
67
+ displayType: IkasProductFilterDisplayType;
68
+ };
62
69
  export declare enum IkasProductFilterType {
63
70
  ATTRIBUTE = "ATTRIBUTE",
64
71
  BRAND = "BRAND",
@@ -3,5 +3,11 @@ import { IkasThemeFavicon } from "./prop/favicon/index";
3
3
  export declare class IkasThemeSettings {
4
4
  colors: IkasThemeColor[];
5
5
  favicon: IkasThemeFavicon;
6
+ stockPreference: IkasThemeStockPreference;
6
7
  constructor(data?: Partial<IkasThemeSettings>);
7
8
  }
9
+ export declare enum IkasThemeStockPreference {
10
+ HIDE_OUT_OF_STOCK = "HIDE_OUT_OF_STOCK",
11
+ SHOW_ALL = "SHOW_ALL",
12
+ SHOW_OUT_OF_STOCK_AT_END = "SHOW_OUT_OF_STOCK_AT_END"
13
+ }
@@ -1,5 +1,6 @@
1
1
  import { IkasSalesChannelPaymentGateway } from "../models/data/sales-channel/index";
2
2
  import { IkasStorefrontRouting } from "../models/data/storefront/routing/index";
3
+ import { IkasThemeStockPreference } from "../models/theme/settings/index";
3
4
  import { IkasThemeFavicon } from "../models/theme/settings/prop/favicon/index";
4
5
  import { IkasBaseStore } from "../store/index";
5
6
  export declare class IkasStorefrontConfig {
@@ -18,6 +19,7 @@ export declare class IkasStorefrontConfig {
18
19
  static gtmId?: string;
19
20
  static fbpId?: string;
20
21
  static favicon: IkasThemeFavicon;
22
+ static stockPreference: IkasThemeStockPreference;
21
23
  static init(store: IkasBaseStore, components: any, config: Record<string, any>, apiUrlOverride?: string): void;
22
24
  static initWithJson(json: Record<string, any>): void;
23
25
  static getJson(): {
@@ -32,5 +34,6 @@ export declare class IkasStorefrontConfig {
32
34
  gtmId: string | null;
33
35
  fbpId: string | null;
34
36
  favicon: any;
37
+ stockPreference: IkasThemeStockPreference;
35
38
  };
36
39
  }
@@ -36,6 +36,7 @@ export declare class IkasPageDataProvider {
36
36
  gtmId: string | null;
37
37
  fbpId: string | null;
38
38
  favicon: any;
39
+ stockPreference: import("../../models/theme/settings/index").IkasThemeStockPreference;
39
40
  };
40
41
  };
41
42
  };
@@ -7,6 +7,7 @@ import { IkasSalesChannel } from "../models/data/sales-channel/index";
7
7
  import { IkasStorefrontRouting } from "../models/data/storefront/routing/index";
8
8
  import { IkasStorefrontThemeLocalization } from "../models/data/storefront/theme-localization/index";
9
9
  import { IkasThemeFavicon } from "../models/theme/settings/prop/favicon/index";
10
+ import { IkasThemeStockPreference } from "../models/theme/settings/index";
10
11
  export declare class SettingsHelper {
11
12
  static readLocalTheme(): Promise<IkasTheme>;
12
13
  static readSettingsFile(): Promise<any>;
@@ -30,6 +31,7 @@ export declare class SettingsHelper {
30
31
  gtmId: string | null;
31
32
  fbpId: string | null;
32
33
  favicon: any;
34
+ stockPreference: IkasThemeStockPreference;
33
35
  };
34
36
  };
35
37
  } | {
@@ -55,6 +57,7 @@ export declare class SettingsHelper {
55
57
  gtmId: string | null;
56
58
  fbpId: string | null;
57
59
  favicon: any;
60
+ stockPreference: IkasThemeStockPreference;
58
61
  };
59
62
  };
60
63
  revalidate: number;
@@ -79,6 +82,7 @@ export declare class SettingsHelper {
79
82
  gtmId: string | null;
80
83
  fbpId: string | null;
81
84
  favicon: any;
85
+ stockPreference: IkasThemeStockPreference;
82
86
  };
83
87
  };
84
88
  } | {
@@ -104,6 +108,7 @@ export declare class SettingsHelper {
104
108
  gtmId: string | null;
105
109
  fbpId: string | null;
106
110
  favicon: any;
111
+ stockPreference: IkasThemeStockPreference;
107
112
  };
108
113
  };
109
114
  revalidate: number;
@@ -128,6 +133,7 @@ export declare class SettingsHelper {
128
133
  gtmId: string | null;
129
134
  fbpId: string | null;
130
135
  favicon: any;
136
+ stockPreference: IkasThemeStockPreference;
131
137
  };
132
138
  };
133
139
  } | {
@@ -153,6 +159,7 @@ export declare class SettingsHelper {
153
159
  gtmId: string | null;
154
160
  fbpId: string | null;
155
161
  favicon: any;
162
+ stockPreference: IkasThemeStockPreference;
156
163
  };
157
164
  };
158
165
  revalidate: number;
@@ -165,4 +172,5 @@ export declare type SettingsData = {
165
172
  salesChannel: IkasSalesChannel;
166
173
  routing: IkasStorefrontRouting;
167
174
  favicon: IkasThemeFavicon;
175
+ stockPreference: IkasThemeStockPreference;
168
176
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikas/storefront",
3
- "version": "0.0.160-alpha.9",
3
+ "version": "0.0.160",
4
4
  "main": "./build/index.js",
5
5
  "module": "./build/index.es.js",
6
6
  "author": "Umut Ozan Yıldırım",