@ikas/storefront 0.0.160-alpha.8 → 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;
@@ -82,5 +82,5 @@ export interface listBlogVariables {
82
82
  pagination?: PaginationInput | null;
83
83
  storefrontId?: StringFilterInput | null;
84
84
  tagId?: StringFilterInput | null;
85
- title?: StringFilterInput | null;
85
+ search?: string | null;
86
86
  }
@@ -26,6 +26,6 @@ export interface listProductBrand {
26
26
  export interface listProductBrandVariables {
27
27
  id?: StringFilterInput | null;
28
28
  pagination?: PaginationInput | null;
29
- name?: StringFilterInput | null;
29
+ search?: string | null;
30
30
  sort?: string | null;
31
31
  }
@@ -31,6 +31,6 @@ export interface listCategory {
31
31
  export interface listCategoryVariables {
32
32
  id?: StringFilterInput | null;
33
33
  pagination?: PaginationInput | null;
34
- name?: StringFilterInput | null;
34
+ search?: string | null;
35
35
  sort?: string | null;
36
36
  }
@@ -19,5 +19,5 @@ export interface listCategoryPaths {
19
19
  export interface listCategoryPathsVariables {
20
20
  id?: StringFilterInput | null;
21
21
  pagination?: PaginationInput | null;
22
- name?: StringFilterInput | null;
22
+ search?: string | null;
23
23
  }
@@ -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,7 +17009,7 @@ 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
17014
  return now.diff(orderedAt, "days");
17014
17015
  }
@@ -24122,7 +24123,9 @@ var IkasOrder = /** @class */ (function () {
24122
24123
  ? new IkasOrderAddress(data.billingAddress)
24123
24124
  : null;
24124
24125
  this.orderLineItems = data.orderLineItems
24125
- ? 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
+ })
24126
24129
  : [];
24127
24130
  this.orderAdjustments = data.orderAdjustments;
24128
24131
  this.shippingLines = data.shippingLines;
@@ -24470,9 +24473,13 @@ var IkasProductVariantType = /** @class */ (function () {
24470
24473
  ? new IkasVariantType(data.variantType)
24471
24474
  : new IkasVariantType();
24472
24475
  this.variantValueIds = data.variantValueIds || [];
24473
- this.variantType.values = this.variantType.values.filter(function (v) {
24474
- 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);
24475
24481
  });
24482
+ this.variantType.values = orderedVariantValues;
24476
24483
  makeAutoObservable(this);
24477
24484
  }
24478
24485
  return IkasProductVariantType;
@@ -24569,6 +24576,7 @@ var IkasProductFilter = /** @class */ (function () {
24569
24576
  this.type = data.type || IkasProductFilterType.BRAND;
24570
24577
  this.displayType = data.displayType || IkasProductFilterDisplayType.BOX;
24571
24578
  this.isMultiSelect = data.isMultiSelect || false;
24579
+ this.isFacetFilter = data.isFacetFilter || false;
24572
24580
  this.values = data.values
24573
24581
  ? data.values.map(function (v) { return new IkasApplicableProductFilterValue(v); })
24574
24582
  : null;
@@ -24798,6 +24806,7 @@ var IkasProductFilterValue = /** @class */ (function () {
24798
24806
  function IkasProductFilterValue(data) {
24799
24807
  this.id = data.id;
24800
24808
  this.type = data.type;
24809
+ this.displayType = data.displayType;
24801
24810
  this.valueList = data.valueList;
24802
24811
  makeAutoObservable(this);
24803
24812
  }
@@ -25233,10 +25242,18 @@ var IkasThemeSettings = /** @class */ (function () {
25233
25242
  ? data.colors.map(function (c) { return new IkasThemeColor(c); })
25234
25243
  : [];
25235
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;
25236
25247
  makeAutoObservable(this);
25237
25248
  }
25238
25249
  return IkasThemeSettings;
25239
- }());
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 = {}));
25240
25257
 
25241
25258
  var IkasTheme = /** @class */ (function () {
25242
25259
  function IkasTheme(data) {
@@ -27556,6 +27573,7 @@ var PaymentGatewayTransactionFeeTypeEnum;
27556
27573
  */
27557
27574
  var PaymentMethodEnum;
27558
27575
  (function (PaymentMethodEnum) {
27576
+ PaymentMethodEnum["APP_PAYMENT"] = "APP_PAYMENT";
27559
27577
  PaymentMethodEnum["BUY_ONLINE_PAY_AT_STORE"] = "BUY_ONLINE_PAY_AT_STORE";
27560
27578
  PaymentMethodEnum["CASH"] = "CASH";
27561
27579
  PaymentMethodEnum["CASH_ON_DELIVERY"] = "CASH_ON_DELIVERY";
@@ -28286,26 +28304,28 @@ var IkasProductList = /** @class */ (function () {
28286
28304
  IkasProductList.prototype.searchProducts = function (page, limit, productIdList) {
28287
28305
  var _a, _b, _c;
28288
28306
  return __awaiter(this, void 0, void 0, function () {
28289
- var filterList, selectedCategoryIds;
28307
+ var filterList, facetList, selectedCategoryIds;
28290
28308
  return __generator(this, function (_d) {
28291
28309
  switch (_d.label) {
28292
28310
  case 0:
28293
28311
  filterList = [];
28294
- if (this._filterBrandId) {
28295
- filterList.push(new IkasProductFilterValue({
28296
- id: this._filterBrandId,
28297
- type: IkasProductFilterType.BRAND,
28298
- valueList: [this._filterBrandId],
28299
- }));
28300
- }
28312
+ facetList = [];
28301
28313
  (_a = this.filters) === null || _a === void 0 ? void 0 : _a.forEach(function (filter) {
28302
28314
  if (filter.valueList.length) {
28303
28315
  filterList.push(new IkasProductFilterValue({
28304
28316
  id: filter.id,
28305
28317
  type: filter.type,
28318
+ displayType: filter.displayType,
28306
28319
  valueList: filter.valueList,
28307
28320
  }));
28308
28321
  }
28322
+ if (filter.isFacetFilter) {
28323
+ facetList.push({
28324
+ id: filter.id,
28325
+ type: filter.type,
28326
+ displayType: filter.displayType,
28327
+ });
28328
+ }
28309
28329
  });
28310
28330
  selectedCategoryIds = (_b = this._filterCategories) === null || _b === void 0 ? void 0 : _b.filter(function (fc) { return fc.isSelected; }).map(function (fc) { return fc.id; });
28311
28331
  return [4 /*yield*/, IkasProductSearchAPI.searchProducts({
@@ -28314,6 +28334,7 @@ var IkasProductList = /** @class */ (function () {
28314
28334
  productIdList: this.isStatic
28315
28335
  ? (_c = this._productListPropValue.productIds) === null || _c === void 0 ? void 0 : _c.map(function (p) { return p.productId; }) : productIdList,
28316
28336
  filterList: filterList,
28337
+ facetList: facetList,
28317
28338
  brandId: this._pageType === IkasThemePageType.BRAND &&
28318
28339
  this._type !== IkasProductListType.SEARCH
28319
28340
  ? this._filterBrandId
@@ -28327,7 +28348,7 @@ var IkasProductList = /** @class */ (function () {
28327
28348
  salesChannelId: IkasStorefrontConfig.salesChannelId,
28328
28349
  query: this._searchKeyword,
28329
28350
  order: [this.getSortParams()],
28330
- })];
28351
+ }, true)];
28331
28352
  case 1: return [2 /*return*/, _d.sent()];
28332
28353
  }
28333
28354
  });
@@ -32546,7 +32567,7 @@ var IkasPageDataProvider = /** @class */ (function () {
32546
32567
  };
32547
32568
  IkasPageDataProvider.prototype.getPageSpecificProduct = function () {
32548
32569
  return __awaiter(this, void 0, void 0, function () {
32549
- 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;
32550
32571
  var _this = this;
32551
32572
  return __generator(this, function (_b) {
32552
32573
  switch (_b.label) {
@@ -32609,6 +32630,19 @@ var IkasPageDataProvider = /** @class */ (function () {
32609
32630
  this.pageSpecificData = new IkasProductDetail(product, selectedVariantValues.length
32610
32631
  ? selectedVariantValues
32611
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
+ }
32612
32646
  this.pageType = IkasThemePageType.PRODUCT;
32613
32647
  this.setPageMetaData(metaDataResponse.metaData);
32614
32648
  return [2 /*return*/];
@@ -33264,7 +33298,7 @@ var IkasBlogAPI = /** @class */ (function () {
33264
33298
  return __generator(this, function (_b) {
33265
33299
  switch (_b.label) {
33266
33300
  case 0:
33267
- QUERY = src(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n query listBlog(\n $id: StringFilterInput\n $categoryId: StringFilterInput\n $pagination: PaginationInput\n $storefrontId: StringFilterInput\n $tagId: StringFilterInput\n $title: StringFilterInput\n ) {\n listBlog(\n id: $id\n categoryId: $categoryId\n pagination: $pagination\n storefrontId: $storefrontId\n tagId: $tagId\n title: $title\n ) {\n count\n data {\n title\n categoryId\n category {\n createdAt\n updatedAt\n deleted\n id\n name\n imageId\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n }\n tags {\n createdAt\n id\n name\n deleted\n updatedAt\n }\n createdAt\n deleted\n id\n imageId\n isPublished\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n writer {\n firstName\n lastName\n }\n publishedAt\n shortDescription\n storefrontId\n tagIds\n updatedAt\n }\n hasNext\n limit\n page\n }\n }\n "], ["\n query listBlog(\n $id: StringFilterInput\n $categoryId: StringFilterInput\n $pagination: PaginationInput\n $storefrontId: StringFilterInput\n $tagId: StringFilterInput\n $title: StringFilterInput\n ) {\n listBlog(\n id: $id\n categoryId: $categoryId\n pagination: $pagination\n storefrontId: $storefrontId\n tagId: $tagId\n title: $title\n ) {\n count\n data {\n title\n categoryId\n category {\n createdAt\n updatedAt\n deleted\n id\n name\n imageId\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n }\n tags {\n createdAt\n id\n name\n deleted\n updatedAt\n }\n createdAt\n deleted\n id\n imageId\n isPublished\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n writer {\n firstName\n lastName\n }\n publishedAt\n shortDescription\n storefrontId\n tagIds\n updatedAt\n }\n hasNext\n limit\n page\n }\n }\n "])));
33301
+ QUERY = src(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n query listBlog(\n $id: StringFilterInput\n $categoryId: StringFilterInput\n $pagination: PaginationInput\n $storefrontId: StringFilterInput\n $tagId: StringFilterInput\n $search: String\n ) {\n listBlog(\n id: $id\n categoryId: $categoryId\n pagination: $pagination\n storefrontId: $storefrontId\n tagId: $tagId\n search: $search\n ) {\n count\n data {\n title\n categoryId\n category {\n createdAt\n updatedAt\n deleted\n id\n name\n imageId\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n }\n tags {\n createdAt\n id\n name\n deleted\n updatedAt\n }\n createdAt\n deleted\n id\n imageId\n isPublished\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n writer {\n firstName\n lastName\n }\n publishedAt\n shortDescription\n storefrontId\n tagIds\n updatedAt\n }\n hasNext\n limit\n page\n }\n }\n "], ["\n query listBlog(\n $id: StringFilterInput\n $categoryId: StringFilterInput\n $pagination: PaginationInput\n $storefrontId: StringFilterInput\n $tagId: StringFilterInput\n $search: String\n ) {\n listBlog(\n id: $id\n categoryId: $categoryId\n pagination: $pagination\n storefrontId: $storefrontId\n tagId: $tagId\n search: $search\n ) {\n count\n data {\n title\n categoryId\n category {\n createdAt\n updatedAt\n deleted\n id\n name\n imageId\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n }\n tags {\n createdAt\n id\n name\n deleted\n updatedAt\n }\n createdAt\n deleted\n id\n imageId\n isPublished\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n writer {\n firstName\n lastName\n }\n publishedAt\n shortDescription\n storefrontId\n tagIds\n updatedAt\n }\n hasNext\n limit\n page\n }\n }\n "])));
33268
33302
  _b.label = 1;
33269
33303
  case 1:
33270
33304
  _b.trys.push([1, 3, , 4]);
@@ -33282,7 +33316,7 @@ var IkasBlogAPI = /** @class */ (function () {
33282
33316
  limit: params.limit,
33283
33317
  },
33284
33318
  tagId: params.tagId ? { eq: params.tagId } : undefined,
33285
- title: params.title ? { like: params.title } : undefined,
33319
+ search: params.title,
33286
33320
  storefrontId: { eq: IkasStorefrontConfig.storefrontId },
33287
33321
  },
33288
33322
  })];
@@ -33459,7 +33493,7 @@ var IkasBrandAPI = /** @class */ (function () {
33459
33493
  return __generator(this, function (_b) {
33460
33494
  switch (_b.label) {
33461
33495
  case 0:
33462
- LIST_QUERY = src(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n query listProductBrand(\n $id: StringFilterInput\n $pagination: PaginationInput\n $name: StringFilterInput\n $sort: String\n ) {\n listProductBrand(\n id: $id\n pagination: $pagination\n name: $name\n sort: $sort\n ) {\n data {\n id\n name\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n }\n count\n }\n }\n "], ["\n query listProductBrand(\n $id: StringFilterInput\n $pagination: PaginationInput\n $name: StringFilterInput\n $sort: String\n ) {\n listProductBrand(\n id: $id\n pagination: $pagination\n name: $name\n sort: $sort\n ) {\n data {\n id\n name\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n }\n count\n }\n }\n "])));
33496
+ LIST_QUERY = src(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n query listProductBrand(\n $id: StringFilterInput\n $pagination: PaginationInput\n $search: String\n $sort: String\n ) {\n listProductBrand(\n id: $id\n pagination: $pagination\n search: $search\n sort: $sort\n ) {\n data {\n id\n name\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n }\n count\n }\n }\n "], ["\n query listProductBrand(\n $id: StringFilterInput\n $pagination: PaginationInput\n $search: String\n $sort: String\n ) {\n listProductBrand(\n id: $id\n pagination: $pagination\n search: $search\n sort: $sort\n ) {\n data {\n id\n name\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n }\n count\n }\n }\n "])));
33463
33497
  _b.label = 1;
33464
33498
  case 1:
33465
33499
  _b.trys.push([1, 3, , 4]);
@@ -33478,10 +33512,7 @@ var IkasBrandAPI = /** @class */ (function () {
33478
33512
  limit: params.limit || 10,
33479
33513
  }
33480
33514
  : undefined,
33481
- name: (params === null || params === void 0 ? void 0 : params.search) ? {
33482
- like: params.search,
33483
- }
33484
- : undefined,
33515
+ search: params === null || params === void 0 ? void 0 : params.search,
33485
33516
  sort: (params === null || params === void 0 ? void 0 : params.sort) || null,
33486
33517
  },
33487
33518
  })];
@@ -33611,7 +33642,7 @@ var IkasCategoryAPI = /** @class */ (function () {
33611
33642
  return __generator(this, function (_b) {
33612
33643
  switch (_b.label) {
33613
33644
  case 0:
33614
- LIST_QUERY = src(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n query listCategory(\n $id: StringFilterInput\n $pagination: PaginationInput\n $name: StringFilterInput\n $sort: String\n ) {\n listCategory(\n id: $id\n pagination: $pagination\n name: $name\n sort: $sort\n ) {\n data {\n id\n createdAt\n updatedAt\n deleted\n name\n parentId\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n categoryPath\n }\n count\n }\n }\n "], ["\n query listCategory(\n $id: StringFilterInput\n $pagination: PaginationInput\n $name: StringFilterInput\n $sort: String\n ) {\n listCategory(\n id: $id\n pagination: $pagination\n name: $name\n sort: $sort\n ) {\n data {\n id\n createdAt\n updatedAt\n deleted\n name\n parentId\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n categoryPath\n }\n count\n }\n }\n "])));
33645
+ LIST_QUERY = src(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n query listCategory(\n $id: StringFilterInput\n $pagination: PaginationInput\n $search: String\n $sort: String\n ) {\n listCategory(\n id: $id\n pagination: $pagination\n search: $search\n sort: $sort\n ) {\n data {\n id\n createdAt\n updatedAt\n deleted\n name\n parentId\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n categoryPath\n }\n count\n }\n }\n "], ["\n query listCategory(\n $id: StringFilterInput\n $pagination: PaginationInput\n $search: String\n $sort: String\n ) {\n listCategory(\n id: $id\n pagination: $pagination\n search: $search\n sort: $sort\n ) {\n data {\n id\n createdAt\n updatedAt\n deleted\n name\n parentId\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n categoryPath\n }\n count\n }\n }\n "])));
33615
33646
  _b.label = 1;
33616
33647
  case 1:
33617
33648
  _b.trys.push([1, 10, , 11]);
@@ -33630,10 +33661,7 @@ var IkasCategoryAPI = /** @class */ (function () {
33630
33661
  limit: params.limit || 10,
33631
33662
  }
33632
33663
  : undefined,
33633
- name: (params === null || params === void 0 ? void 0 : params.search) ? {
33634
- like: params.search,
33635
- }
33636
- : undefined,
33664
+ search: params === null || params === void 0 ? void 0 : params.search,
33637
33665
  sort: (params === null || params === void 0 ? void 0 : params.sort) || null,
33638
33666
  },
33639
33667
  })];
@@ -33721,7 +33749,7 @@ var IkasCategoryAPI = /** @class */ (function () {
33721
33749
  return __generator(this, function (_b) {
33722
33750
  switch (_b.label) {
33723
33751
  case 0:
33724
- LIST_QUERY = src(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["\n query listCategoryPaths(\n $id: StringFilterInput\n $pagination: PaginationInput\n $name: StringFilterInput\n ) {\n listCategory(id: $id, pagination: $pagination, name: $name) {\n data {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "], ["\n query listCategoryPaths(\n $id: StringFilterInput\n $pagination: PaginationInput\n $name: StringFilterInput\n ) {\n listCategory(id: $id, pagination: $pagination, name: $name) {\n data {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "])));
33752
+ LIST_QUERY = src(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["\n query listCategoryPaths(\n $id: StringFilterInput\n $pagination: PaginationInput\n $search: String\n ) {\n listCategory(id: $id, pagination: $pagination, search: $search) {\n data {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "], ["\n query listCategoryPaths(\n $id: StringFilterInput\n $pagination: PaginationInput\n $search: String\n ) {\n listCategory(id: $id, pagination: $pagination, search: $search) {\n data {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "])));
33725
33753
  _b.label = 1;
33726
33754
  case 1:
33727
33755
  _b.trys.push([1, 3, , 4]);
@@ -33740,10 +33768,7 @@ var IkasCategoryAPI = /** @class */ (function () {
33740
33768
  limit: params.limit || 10,
33741
33769
  }
33742
33770
  : undefined,
33743
- name: (params === null || params === void 0 ? void 0 : params.search) ? {
33744
- like: params.search,
33745
- }
33746
- : undefined,
33771
+ search: params === null || params === void 0 ? void 0 : params.search,
33747
33772
  },
33748
33773
  })];
33749
33774
  case 2:
@@ -34581,7 +34606,7 @@ var IkasCustomerAPI = /** @class */ (function () {
34581
34606
  return __generator(this, function (_b) {
34582
34607
  switch (_b.label) {
34583
34608
  case 0:
34584
- 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 "])));
34585
34610
  _b.label = 1;
34586
34611
  case 1:
34587
34612
  _b.trys.push([1, 3, , 4]);
@@ -34994,7 +35019,8 @@ var IkasProductAttributeTableTemplate = /** @class */ (function () {
34994
35019
  var IkasProductSearchAPI = /** @class */ (function () {
34995
35020
  function IkasProductSearchAPI() {
34996
35021
  }
34997
- IkasProductSearchAPI.searchProducts = function (input) {
35022
+ IkasProductSearchAPI.searchProducts = function (input, useStockFilter) {
35023
+ if (useStockFilter === void 0) { useStockFilter = false; }
34998
35024
  return __awaiter(this, void 0, void 0, function () {
34999
35025
  var SEARCH_PRODUCTS, _a, data, errors, err_1;
35000
35026
  return __generator(this, function (_b) {
@@ -35007,7 +35033,9 @@ var IkasProductSearchAPI = /** @class */ (function () {
35007
35033
  .query({
35008
35034
  query: SEARCH_PRODUCTS,
35009
35035
  variables: {
35010
- input: input,
35036
+ input: __assign(__assign({}, input), { showStockOption: useStockFilter
35037
+ ? IkasStorefrontConfig.stockPreference
35038
+ : IkasThemeStockPreference.SHOW_ALL }),
35011
35039
  },
35012
35040
  })];
35013
35041
  case 1:
@@ -35035,7 +35063,7 @@ var IkasProductSearchAPI = /** @class */ (function () {
35035
35063
  switch (_b.label) {
35036
35064
  case 0:
35037
35065
  _b.trys.push([0, 2, , 3]);
35038
- 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 "])));
35039
35067
  return [4 /*yield*/, apollo
35040
35068
  .getClient()
35041
35069
  .query({
@@ -37878,6 +37906,7 @@ var SettingsHelper = /** @class */ (function () {
37878
37906
  storefront.routings[0]
37879
37907
  : new IkasStorefrontRouting({}),
37880
37908
  favicon: localTheme.settings.favicon,
37909
+ stockPreference: localTheme.settings.stockPreference,
37881
37910
  });
37882
37911
  return [3 /*break*/, 5];
37883
37912
  case 3: return [4 /*yield*/, SettingsHelper.readSettingsFile()];
@@ -37905,12 +37934,14 @@ var SettingsHelper = /** @class */ (function () {
37905
37934
  var result = file.length ? JSON.parse(file.toString()) : {};
37906
37935
  var themeLocalization = new IkasStorefrontThemeLocalization(result);
37907
37936
  var favicon = themeLocalization.themeJson.settings.favicon;
37937
+ var stockPreference = themeLocalization.themeJson.settings.stockPreference;
37908
37938
  resolve({
37909
37939
  storefront: storefront_1,
37910
37940
  themeLocalization: themeLocalization,
37911
37941
  salesChannel: salesChannel_1,
37912
37942
  routing: routing_1,
37913
37943
  favicon: favicon,
37944
+ stockPreference: stockPreference,
37914
37945
  });
37915
37946
  });
37916
37947
  _a.label = 5;
@@ -37922,7 +37953,7 @@ var SettingsHelper = /** @class */ (function () {
37922
37953
  SettingsHelper.getPageData = function (context, isServer, pageType, possiblePageTypes) {
37923
37954
  var _a;
37924
37955
  return __awaiter(this, void 0, void 0, function () {
37925
- var isLocal, locale, settings, storefront, themeLocalization, salesChannel, routing, favicon, provider;
37956
+ var isLocal, locale, settings, storefront, themeLocalization, salesChannel, routing, favicon, stockPreference, provider;
37926
37957
  return __generator(this, function (_b) {
37927
37958
  switch (_b.label) {
37928
37959
  case 0:
@@ -37945,7 +37976,7 @@ var SettingsHelper = /** @class */ (function () {
37945
37976
  notFound: true,
37946
37977
  }];
37947
37978
  }
37948
- 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;
37949
37980
  IkasStorefrontConfig.storefrontId = storefront.id;
37950
37981
  IkasStorefrontConfig.storefrontRoutingId = routing.id;
37951
37982
  IkasStorefrontConfig.storefrontThemeId = storefront.mainStorefrontThemeId;
@@ -37957,6 +37988,7 @@ var SettingsHelper = /** @class */ (function () {
37957
37988
  IkasStorefrontConfig.gtmId = storefront.gtmId || undefined;
37958
37989
  IkasStorefrontConfig.fbpId = storefront.fbpId || undefined;
37959
37990
  IkasStorefrontConfig.favicon = favicon || null;
37991
+ IkasStorefrontConfig.stockPreference = stockPreference || null;
37960
37992
  provider = new IkasPageDataProvider(themeLocalization.themeJson, context.params, pageType);
37961
37993
  provider.possiblePageTypes = possiblePageTypes;
37962
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,7 +17023,7 @@ 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
17028
  return now.diff(orderedAt, "days");
17028
17029
  }
@@ -24128,7 +24129,9 @@ var IkasOrder = /** @class */ (function () {
24128
24129
  ? new IkasOrderAddress(data.billingAddress)
24129
24130
  : null;
24130
24131
  this.orderLineItems = data.orderLineItems
24131
- ? 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
+ })
24132
24135
  : [];
24133
24136
  this.orderAdjustments = data.orderAdjustments;
24134
24137
  this.shippingLines = data.shippingLines;
@@ -24466,9 +24469,13 @@ var IkasProductVariantType = /** @class */ (function () {
24466
24469
  ? new IkasVariantType(data.variantType)
24467
24470
  : new IkasVariantType();
24468
24471
  this.variantValueIds = data.variantValueIds || [];
24469
- this.variantType.values = this.variantType.values.filter(function (v) {
24470
- 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);
24471
24477
  });
24478
+ this.variantType.values = orderedVariantValues;
24472
24479
  mobx.makeAutoObservable(this);
24473
24480
  }
24474
24481
  return IkasProductVariantType;
@@ -24564,6 +24571,7 @@ var IkasProductFilter = /** @class */ (function () {
24564
24571
  this.type = data.type || exports.IkasProductFilterType.BRAND;
24565
24572
  this.displayType = data.displayType || exports.IkasProductFilterDisplayType.BOX;
24566
24573
  this.isMultiSelect = data.isMultiSelect || false;
24574
+ this.isFacetFilter = data.isFacetFilter || false;
24567
24575
  this.values = data.values
24568
24576
  ? data.values.map(function (v) { return new IkasApplicableProductFilterValue(v); })
24569
24577
  : null;
@@ -24793,6 +24801,7 @@ var IkasProductFilterValue = /** @class */ (function () {
24793
24801
  function IkasProductFilterValue(data) {
24794
24802
  this.id = data.id;
24795
24803
  this.type = data.type;
24804
+ this.displayType = data.displayType;
24796
24805
  this.valueList = data.valueList;
24797
24806
  mobx.makeAutoObservable(this);
24798
24807
  }
@@ -25221,10 +25230,18 @@ var IkasThemeSettings = /** @class */ (function () {
25221
25230
  ? data.colors.map(function (c) { return new IkasThemeColor(c); })
25222
25231
  : [];
25223
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;
25224
25235
  mobx.makeAutoObservable(this);
25225
25236
  }
25226
25237
  return IkasThemeSettings;
25227
- }());
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 = {}));
25228
25245
 
25229
25246
  var IkasTheme = /** @class */ (function () {
25230
25247
  function IkasTheme(data) {
@@ -27537,6 +27554,7 @@ var PaymentGatewayTransactionFeeTypeEnum;
27537
27554
  */
27538
27555
  var PaymentMethodEnum;
27539
27556
  (function (PaymentMethodEnum) {
27557
+ PaymentMethodEnum["APP_PAYMENT"] = "APP_PAYMENT";
27540
27558
  PaymentMethodEnum["BUY_ONLINE_PAY_AT_STORE"] = "BUY_ONLINE_PAY_AT_STORE";
27541
27559
  PaymentMethodEnum["CASH"] = "CASH";
27542
27560
  PaymentMethodEnum["CASH_ON_DELIVERY"] = "CASH_ON_DELIVERY";
@@ -28267,26 +28285,28 @@ var IkasProductList = /** @class */ (function () {
28267
28285
  IkasProductList.prototype.searchProducts = function (page, limit, productIdList) {
28268
28286
  var _a, _b, _c;
28269
28287
  return __awaiter(this, void 0, void 0, function () {
28270
- var filterList, selectedCategoryIds;
28288
+ var filterList, facetList, selectedCategoryIds;
28271
28289
  return __generator(this, function (_d) {
28272
28290
  switch (_d.label) {
28273
28291
  case 0:
28274
28292
  filterList = [];
28275
- if (this._filterBrandId) {
28276
- filterList.push(new IkasProductFilterValue({
28277
- id: this._filterBrandId,
28278
- type: exports.IkasProductFilterType.BRAND,
28279
- valueList: [this._filterBrandId],
28280
- }));
28281
- }
28293
+ facetList = [];
28282
28294
  (_a = this.filters) === null || _a === void 0 ? void 0 : _a.forEach(function (filter) {
28283
28295
  if (filter.valueList.length) {
28284
28296
  filterList.push(new IkasProductFilterValue({
28285
28297
  id: filter.id,
28286
28298
  type: filter.type,
28299
+ displayType: filter.displayType,
28287
28300
  valueList: filter.valueList,
28288
28301
  }));
28289
28302
  }
28303
+ if (filter.isFacetFilter) {
28304
+ facetList.push({
28305
+ id: filter.id,
28306
+ type: filter.type,
28307
+ displayType: filter.displayType,
28308
+ });
28309
+ }
28290
28310
  });
28291
28311
  selectedCategoryIds = (_b = this._filterCategories) === null || _b === void 0 ? void 0 : _b.filter(function (fc) { return fc.isSelected; }).map(function (fc) { return fc.id; });
28292
28312
  return [4 /*yield*/, IkasProductSearchAPI.searchProducts({
@@ -28295,6 +28315,7 @@ var IkasProductList = /** @class */ (function () {
28295
28315
  productIdList: this.isStatic
28296
28316
  ? (_c = this._productListPropValue.productIds) === null || _c === void 0 ? void 0 : _c.map(function (p) { return p.productId; }) : productIdList,
28297
28317
  filterList: filterList,
28318
+ facetList: facetList,
28298
28319
  brandId: this._pageType === exports.IkasThemePageType.BRAND &&
28299
28320
  this._type !== exports.IkasProductListType.SEARCH
28300
28321
  ? this._filterBrandId
@@ -28308,7 +28329,7 @@ var IkasProductList = /** @class */ (function () {
28308
28329
  salesChannelId: IkasStorefrontConfig.salesChannelId,
28309
28330
  query: this._searchKeyword,
28310
28331
  order: [this.getSortParams()],
28311
- })];
28332
+ }, true)];
28312
28333
  case 1: return [2 /*return*/, _d.sent()];
28313
28334
  }
28314
28335
  });
@@ -32524,7 +32545,7 @@ var IkasPageDataProvider = /** @class */ (function () {
32524
32545
  };
32525
32546
  IkasPageDataProvider.prototype.getPageSpecificProduct = function () {
32526
32547
  return __awaiter(this, void 0, void 0, function () {
32527
- 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;
32528
32549
  var _this = this;
32529
32550
  return __generator(this, function (_b) {
32530
32551
  switch (_b.label) {
@@ -32587,6 +32608,19 @@ var IkasPageDataProvider = /** @class */ (function () {
32587
32608
  this.pageSpecificData = new IkasProductDetail(product, selectedVariantValues.length
32588
32609
  ? selectedVariantValues
32589
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
+ }
32590
32624
  this.pageType = exports.IkasThemePageType.PRODUCT;
32591
32625
  this.setPageMetaData(metaDataResponse.metaData);
32592
32626
  return [2 /*return*/];
@@ -33241,7 +33275,7 @@ var IkasBlogAPI = /** @class */ (function () {
33241
33275
  return __generator(this, function (_b) {
33242
33276
  switch (_b.label) {
33243
33277
  case 0:
33244
- QUERY = src(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n query listBlog(\n $id: StringFilterInput\n $categoryId: StringFilterInput\n $pagination: PaginationInput\n $storefrontId: StringFilterInput\n $tagId: StringFilterInput\n $title: StringFilterInput\n ) {\n listBlog(\n id: $id\n categoryId: $categoryId\n pagination: $pagination\n storefrontId: $storefrontId\n tagId: $tagId\n title: $title\n ) {\n count\n data {\n title\n categoryId\n category {\n createdAt\n updatedAt\n deleted\n id\n name\n imageId\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n }\n tags {\n createdAt\n id\n name\n deleted\n updatedAt\n }\n createdAt\n deleted\n id\n imageId\n isPublished\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n writer {\n firstName\n lastName\n }\n publishedAt\n shortDescription\n storefrontId\n tagIds\n updatedAt\n }\n hasNext\n limit\n page\n }\n }\n "], ["\n query listBlog(\n $id: StringFilterInput\n $categoryId: StringFilterInput\n $pagination: PaginationInput\n $storefrontId: StringFilterInput\n $tagId: StringFilterInput\n $title: StringFilterInput\n ) {\n listBlog(\n id: $id\n categoryId: $categoryId\n pagination: $pagination\n storefrontId: $storefrontId\n tagId: $tagId\n title: $title\n ) {\n count\n data {\n title\n categoryId\n category {\n createdAt\n updatedAt\n deleted\n id\n name\n imageId\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n }\n tags {\n createdAt\n id\n name\n deleted\n updatedAt\n }\n createdAt\n deleted\n id\n imageId\n isPublished\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n writer {\n firstName\n lastName\n }\n publishedAt\n shortDescription\n storefrontId\n tagIds\n updatedAt\n }\n hasNext\n limit\n page\n }\n }\n "])));
33278
+ QUERY = src(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n query listBlog(\n $id: StringFilterInput\n $categoryId: StringFilterInput\n $pagination: PaginationInput\n $storefrontId: StringFilterInput\n $tagId: StringFilterInput\n $search: String\n ) {\n listBlog(\n id: $id\n categoryId: $categoryId\n pagination: $pagination\n storefrontId: $storefrontId\n tagId: $tagId\n search: $search\n ) {\n count\n data {\n title\n categoryId\n category {\n createdAt\n updatedAt\n deleted\n id\n name\n imageId\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n }\n tags {\n createdAt\n id\n name\n deleted\n updatedAt\n }\n createdAt\n deleted\n id\n imageId\n isPublished\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n writer {\n firstName\n lastName\n }\n publishedAt\n shortDescription\n storefrontId\n tagIds\n updatedAt\n }\n hasNext\n limit\n page\n }\n }\n "], ["\n query listBlog(\n $id: StringFilterInput\n $categoryId: StringFilterInput\n $pagination: PaginationInput\n $storefrontId: StringFilterInput\n $tagId: StringFilterInput\n $search: String\n ) {\n listBlog(\n id: $id\n categoryId: $categoryId\n pagination: $pagination\n storefrontId: $storefrontId\n tagId: $tagId\n search: $search\n ) {\n count\n data {\n title\n categoryId\n category {\n createdAt\n updatedAt\n deleted\n id\n name\n imageId\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n }\n tags {\n createdAt\n id\n name\n deleted\n updatedAt\n }\n createdAt\n deleted\n id\n imageId\n isPublished\n metadata {\n createdAt\n deleted\n description\n id\n pageTitle\n slug\n targetId\n targetType\n updatedAt\n }\n writer {\n firstName\n lastName\n }\n publishedAt\n shortDescription\n storefrontId\n tagIds\n updatedAt\n }\n hasNext\n limit\n page\n }\n }\n "])));
33245
33279
  _b.label = 1;
33246
33280
  case 1:
33247
33281
  _b.trys.push([1, 3, , 4]);
@@ -33259,7 +33293,7 @@ var IkasBlogAPI = /** @class */ (function () {
33259
33293
  limit: params.limit,
33260
33294
  },
33261
33295
  tagId: params.tagId ? { eq: params.tagId } : undefined,
33262
- title: params.title ? { like: params.title } : undefined,
33296
+ search: params.title,
33263
33297
  storefrontId: { eq: IkasStorefrontConfig.storefrontId },
33264
33298
  },
33265
33299
  })];
@@ -33436,7 +33470,7 @@ var IkasBrandAPI = /** @class */ (function () {
33436
33470
  return __generator(this, function (_b) {
33437
33471
  switch (_b.label) {
33438
33472
  case 0:
33439
- LIST_QUERY = src(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n query listProductBrand(\n $id: StringFilterInput\n $pagination: PaginationInput\n $name: StringFilterInput\n $sort: String\n ) {\n listProductBrand(\n id: $id\n pagination: $pagination\n name: $name\n sort: $sort\n ) {\n data {\n id\n name\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n }\n count\n }\n }\n "], ["\n query listProductBrand(\n $id: StringFilterInput\n $pagination: PaginationInput\n $name: StringFilterInput\n $sort: String\n ) {\n listProductBrand(\n id: $id\n pagination: $pagination\n name: $name\n sort: $sort\n ) {\n data {\n id\n name\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n }\n count\n }\n }\n "])));
33473
+ LIST_QUERY = src(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n query listProductBrand(\n $id: StringFilterInput\n $pagination: PaginationInput\n $search: String\n $sort: String\n ) {\n listProductBrand(\n id: $id\n pagination: $pagination\n search: $search\n sort: $sort\n ) {\n data {\n id\n name\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n }\n count\n }\n }\n "], ["\n query listProductBrand(\n $id: StringFilterInput\n $pagination: PaginationInput\n $search: String\n $sort: String\n ) {\n listProductBrand(\n id: $id\n pagination: $pagination\n search: $search\n sort: $sort\n ) {\n data {\n id\n name\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n }\n count\n }\n }\n "])));
33440
33474
  _b.label = 1;
33441
33475
  case 1:
33442
33476
  _b.trys.push([1, 3, , 4]);
@@ -33455,10 +33489,7 @@ var IkasBrandAPI = /** @class */ (function () {
33455
33489
  limit: params.limit || 10,
33456
33490
  }
33457
33491
  : undefined,
33458
- name: (params === null || params === void 0 ? void 0 : params.search) ? {
33459
- like: params.search,
33460
- }
33461
- : undefined,
33492
+ search: params === null || params === void 0 ? void 0 : params.search,
33462
33493
  sort: (params === null || params === void 0 ? void 0 : params.sort) || null,
33463
33494
  },
33464
33495
  })];
@@ -33588,7 +33619,7 @@ var IkasCategoryAPI = /** @class */ (function () {
33588
33619
  return __generator(this, function (_b) {
33589
33620
  switch (_b.label) {
33590
33621
  case 0:
33591
- LIST_QUERY = src(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n query listCategory(\n $id: StringFilterInput\n $pagination: PaginationInput\n $name: StringFilterInput\n $sort: String\n ) {\n listCategory(\n id: $id\n pagination: $pagination\n name: $name\n sort: $sort\n ) {\n data {\n id\n createdAt\n updatedAt\n deleted\n name\n parentId\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n categoryPath\n }\n count\n }\n }\n "], ["\n query listCategory(\n $id: StringFilterInput\n $pagination: PaginationInput\n $name: StringFilterInput\n $sort: String\n ) {\n listCategory(\n id: $id\n pagination: $pagination\n name: $name\n sort: $sort\n ) {\n data {\n id\n createdAt\n updatedAt\n deleted\n name\n parentId\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n categoryPath\n }\n count\n }\n }\n "])));
33622
+ LIST_QUERY = src(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n query listCategory(\n $id: StringFilterInput\n $pagination: PaginationInput\n $search: String\n $sort: String\n ) {\n listCategory(\n id: $id\n pagination: $pagination\n search: $search\n sort: $sort\n ) {\n data {\n id\n createdAt\n updatedAt\n deleted\n name\n parentId\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n categoryPath\n }\n count\n }\n }\n "], ["\n query listCategory(\n $id: StringFilterInput\n $pagination: PaginationInput\n $search: String\n $sort: String\n ) {\n listCategory(\n id: $id\n pagination: $pagination\n search: $search\n sort: $sort\n ) {\n data {\n id\n createdAt\n updatedAt\n deleted\n name\n parentId\n imageId\n metaData {\n slug\n pageTitle\n description\n targetId\n targetType\n redirectTo\n }\n categoryPath\n }\n count\n }\n }\n "])));
33592
33623
  _b.label = 1;
33593
33624
  case 1:
33594
33625
  _b.trys.push([1, 10, , 11]);
@@ -33607,10 +33638,7 @@ var IkasCategoryAPI = /** @class */ (function () {
33607
33638
  limit: params.limit || 10,
33608
33639
  }
33609
33640
  : undefined,
33610
- name: (params === null || params === void 0 ? void 0 : params.search) ? {
33611
- like: params.search,
33612
- }
33613
- : undefined,
33641
+ search: params === null || params === void 0 ? void 0 : params.search,
33614
33642
  sort: (params === null || params === void 0 ? void 0 : params.sort) || null,
33615
33643
  },
33616
33644
  })];
@@ -33698,7 +33726,7 @@ var IkasCategoryAPI = /** @class */ (function () {
33698
33726
  return __generator(this, function (_b) {
33699
33727
  switch (_b.label) {
33700
33728
  case 0:
33701
- LIST_QUERY = src(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["\n query listCategoryPaths(\n $id: StringFilterInput\n $pagination: PaginationInput\n $name: StringFilterInput\n ) {\n listCategory(id: $id, pagination: $pagination, name: $name) {\n data {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "], ["\n query listCategoryPaths(\n $id: StringFilterInput\n $pagination: PaginationInput\n $name: StringFilterInput\n ) {\n listCategory(id: $id, pagination: $pagination, name: $name) {\n data {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "])));
33729
+ LIST_QUERY = src(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["\n query listCategoryPaths(\n $id: StringFilterInput\n $pagination: PaginationInput\n $search: String\n ) {\n listCategory(id: $id, pagination: $pagination, search: $search) {\n data {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "], ["\n query listCategoryPaths(\n $id: StringFilterInput\n $pagination: PaginationInput\n $search: String\n ) {\n listCategory(id: $id, pagination: $pagination, search: $search) {\n data {\n id\n name\n metaData {\n slug\n }\n }\n }\n }\n "])));
33702
33730
  _b.label = 1;
33703
33731
  case 1:
33704
33732
  _b.trys.push([1, 3, , 4]);
@@ -33717,10 +33745,7 @@ var IkasCategoryAPI = /** @class */ (function () {
33717
33745
  limit: params.limit || 10,
33718
33746
  }
33719
33747
  : undefined,
33720
- name: (params === null || params === void 0 ? void 0 : params.search) ? {
33721
- like: params.search,
33722
- }
33723
- : undefined,
33748
+ search: params === null || params === void 0 ? void 0 : params.search,
33724
33749
  },
33725
33750
  })];
33726
33751
  case 2:
@@ -34558,7 +34583,7 @@ var IkasCustomerAPI = /** @class */ (function () {
34558
34583
  return __generator(this, function (_b) {
34559
34584
  switch (_b.label) {
34560
34585
  case 0:
34561
- 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 "])));
34562
34587
  _b.label = 1;
34563
34588
  case 1:
34564
34589
  _b.trys.push([1, 3, , 4]);
@@ -34971,7 +34996,8 @@ var IkasProductAttributeTableTemplate = /** @class */ (function () {
34971
34996
  var IkasProductSearchAPI = /** @class */ (function () {
34972
34997
  function IkasProductSearchAPI() {
34973
34998
  }
34974
- IkasProductSearchAPI.searchProducts = function (input) {
34999
+ IkasProductSearchAPI.searchProducts = function (input, useStockFilter) {
35000
+ if (useStockFilter === void 0) { useStockFilter = false; }
34975
35001
  return __awaiter(this, void 0, void 0, function () {
34976
35002
  var SEARCH_PRODUCTS, _a, data, errors, err_1;
34977
35003
  return __generator(this, function (_b) {
@@ -34984,7 +35010,9 @@ var IkasProductSearchAPI = /** @class */ (function () {
34984
35010
  .query({
34985
35011
  query: SEARCH_PRODUCTS,
34986
35012
  variables: {
34987
- input: input,
35013
+ input: __assign(__assign({}, input), { showStockOption: useStockFilter
35014
+ ? IkasStorefrontConfig.stockPreference
35015
+ : IkasThemeStockPreference.SHOW_ALL }),
34988
35016
  },
34989
35017
  })];
34990
35018
  case 1:
@@ -35012,7 +35040,7 @@ var IkasProductSearchAPI = /** @class */ (function () {
35012
35040
  switch (_b.label) {
35013
35041
  case 0:
35014
35042
  _b.trys.push([0, 2, , 3]);
35015
- 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 "])));
35016
35044
  return [4 /*yield*/, apollo
35017
35045
  .getClient()
35018
35046
  .query({
@@ -37855,6 +37883,7 @@ var SettingsHelper = /** @class */ (function () {
37855
37883
  storefront.routings[0]
37856
37884
  : new IkasStorefrontRouting({}),
37857
37885
  favicon: localTheme.settings.favicon,
37886
+ stockPreference: localTheme.settings.stockPreference,
37858
37887
  });
37859
37888
  return [3 /*break*/, 5];
37860
37889
  case 3: return [4 /*yield*/, SettingsHelper.readSettingsFile()];
@@ -37882,12 +37911,14 @@ var SettingsHelper = /** @class */ (function () {
37882
37911
  var result = file.length ? JSON.parse(file.toString()) : {};
37883
37912
  var themeLocalization = new IkasStorefrontThemeLocalization(result);
37884
37913
  var favicon = themeLocalization.themeJson.settings.favicon;
37914
+ var stockPreference = themeLocalization.themeJson.settings.stockPreference;
37885
37915
  resolve({
37886
37916
  storefront: storefront_1,
37887
37917
  themeLocalization: themeLocalization,
37888
37918
  salesChannel: salesChannel_1,
37889
37919
  routing: routing_1,
37890
37920
  favicon: favicon,
37921
+ stockPreference: stockPreference,
37891
37922
  });
37892
37923
  });
37893
37924
  _a.label = 5;
@@ -37899,7 +37930,7 @@ var SettingsHelper = /** @class */ (function () {
37899
37930
  SettingsHelper.getPageData = function (context, isServer, pageType, possiblePageTypes) {
37900
37931
  var _a;
37901
37932
  return __awaiter(this, void 0, void 0, function () {
37902
- var isLocal, locale, settings, storefront, themeLocalization, salesChannel, routing, favicon, provider;
37933
+ var isLocal, locale, settings, storefront, themeLocalization, salesChannel, routing, favicon, stockPreference, provider;
37903
37934
  return __generator(this, function (_b) {
37904
37935
  switch (_b.label) {
37905
37936
  case 0:
@@ -37922,7 +37953,7 @@ var SettingsHelper = /** @class */ (function () {
37922
37953
  notFound: true,
37923
37954
  }];
37924
37955
  }
37925
- 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;
37926
37957
  IkasStorefrontConfig.storefrontId = storefront.id;
37927
37958
  IkasStorefrontConfig.storefrontRoutingId = routing.id;
37928
37959
  IkasStorefrontConfig.storefrontThemeId = storefront.mainStorefrontThemeId;
@@ -37934,6 +37965,7 @@ var SettingsHelper = /** @class */ (function () {
37934
37965
  IkasStorefrontConfig.gtmId = storefront.gtmId || undefined;
37935
37966
  IkasStorefrontConfig.fbpId = storefront.fbpId || undefined;
37936
37967
  IkasStorefrontConfig.favicon = favicon || null;
37968
+ IkasStorefrontConfig.stockPreference = stockPreference || null;
37937
37969
  provider = new IkasPageDataProvider(themeLocalization.themeJson, context.params, pageType);
37938
37970
  provider.possiblePageTypes = possiblePageTypes;
37939
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.8",
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",