@ikas/storefront 0.0.151 → 0.0.153

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.es.js CHANGED
@@ -21138,7 +21138,7 @@ var IkasProductList = /** @class */ (function () {
21138
21138
  _b.label = 1;
21139
21139
  case 1:
21140
21140
  _b.trys.push([1, 5, 6, 7]);
21141
- page = 1;
21141
+ page = this._page || 1;
21142
21142
  limit = this._limit;
21143
21143
  if (!(this.isFilterable && !this.filters)) return [3 /*break*/, 3];
21144
21144
  return [4 /*yield*/, this.getFilters()];
@@ -21360,6 +21360,9 @@ var IkasProductList = /** @class */ (function () {
21360
21360
  : null;
21361
21361
  this.router = router;
21362
21362
  makeAutoObservable(this);
21363
+ if (this.isBrowser()) {
21364
+ this.checkRestoreInfiniteScroll();
21365
+ }
21363
21366
  if (this.isBrowser() &&
21364
21367
  location.search &&
21365
21368
  (this.isFilterable || this._type === IkasProductListType.SEARCH)) {
@@ -21381,6 +21384,13 @@ var IkasProductList = /** @class */ (function () {
21381
21384
  enumerable: false,
21382
21385
  configurable: true
21383
21386
  });
21387
+ Object.defineProperty(IkasProductList.prototype, "pageType", {
21388
+ get: function () {
21389
+ return this._pageType;
21390
+ },
21391
+ enumerable: false,
21392
+ configurable: true
21393
+ });
21384
21394
  Object.defineProperty(IkasProductList.prototype, "page", {
21385
21395
  get: function () {
21386
21396
  return this._page;
@@ -21752,6 +21762,11 @@ var IkasProductList = /** @class */ (function () {
21752
21762
  });
21753
21763
  });
21754
21764
  };
21765
+ IkasProductList.prototype.setVisibleInfiniteScrollPage = function (page) {
21766
+ //@ts-ignore
21767
+ var infiniteScrollPages = IkasStorefrontConfig.store.infiniteScrollPages;
21768
+ infiniteScrollPages[this._productListPropValue.id] = page;
21769
+ };
21755
21770
  IkasProductList.prototype.toJSON = function () {
21756
21771
  return {
21757
21772
  data: this.data,
@@ -21772,6 +21787,22 @@ var IkasProductList = /** @class */ (function () {
21772
21787
  productListPropValue: this._productListPropValue,
21773
21788
  };
21774
21789
  };
21790
+ IkasProductList.prototype.checkRestoreInfiniteScroll = function () {
21791
+ //@ts-ignore
21792
+ var infiniteScrollPages = IkasStorefrontConfig.store.infiniteScrollPages;
21793
+ var page = infiniteScrollPages[this._productListPropValue.id];
21794
+ if (page) {
21795
+ if (this.hasForwardRoute()) {
21796
+ this._page = page;
21797
+ }
21798
+ else {
21799
+ delete infiniteScrollPages[this._productListPropValue.id];
21800
+ }
21801
+ }
21802
+ };
21803
+ IkasProductList.prototype.hasForwardRoute = function () {
21804
+ return this.isBrowser() && !!window.history.forward;
21805
+ };
21775
21806
  IkasProductList.prototype.getQueryParams = function () {
21776
21807
  if (!this.isBrowser())
21777
21808
  return;
@@ -23709,6 +23740,7 @@ var IkasProductListPropValue = /** @class */ (function () {
23709
23740
  // Example collections/man -> lists products inside the "man" category
23710
23741
  this.usePageFilter = null;
23711
23742
  this.category = null;
23743
+ this.id = data.id || "";
23712
23744
  this.productListType = data.productListType || IkasProductListType.ALL;
23713
23745
  this.initialSort = data.initialSort || IkasProductListSortType.LAST_ADDED;
23714
23746
  this.initialLimit = data.initialLimit || 20;
@@ -24429,7 +24461,11 @@ var IkasCustomPropValueProvider = /** @class */ (function () {
24429
24461
  case 40:
24430
24462
  _b.sent();
24431
24463
  return [2 /*return*/];
24432
- case 41: return [2 /*return*/, JSON.parse(JSON.stringify(customDataValue))];
24464
+ case 41:
24465
+ if (this.customData.isRequired &&
24466
+ ((customDataValue === null || customDataValue === void 0 ? void 0 : customDataValue.value) === undefined || (customDataValue === null || customDataValue === void 0 ? void 0 : customDataValue.value) === null))
24467
+ return [2 /*return*/];
24468
+ return [2 /*return*/, JSON.parse(JSON.stringify(customDataValue))];
24433
24469
  }
24434
24470
  });
24435
24471
  });
@@ -24841,10 +24877,11 @@ var ThemeComponent = observer(function (_a) {
24841
24877
  var pageComponent = pageComponentPropValue.pageComponent;
24842
24878
  var propValues = pageComponentPropValue.propValues;
24843
24879
  var hasNullValue = computed(function () {
24844
- return Object.entries(propValues || {}).some(function (_a) {
24845
- var _b;
24846
- var propName = _a[0], propValue = _a[1];
24847
- return (propValue === null || propValue === undefined) && ((_b = pageComponentPropValue.component.props.find(function (p) { return p.name === propName; })) === null || _b === void 0 ? void 0 : _b.isRequired);
24880
+ return pageComponentPropValue.component.props.some(function (prop) {
24881
+ if (prop.isRequired) {
24882
+ var propValue = (propValues || {})[prop.name];
24883
+ return propValue === null || propValue == undefined;
24884
+ }
24848
24885
  });
24849
24886
  });
24850
24887
  var Component = components[pageComponent.componentId];
@@ -25218,17 +25255,14 @@ var IkasPageDataProvider = /** @class */ (function () {
25218
25255
  Object.defineProperty(IkasPageDataProvider.prototype, "specification", {
25219
25256
  get: function () {
25220
25257
  var _this = this;
25221
- var _a, _b, _c;
25258
+ var _a, _b;
25222
25259
  var selectedPage = this.page;
25223
25260
  var specification;
25224
25261
  if ((selectedPage === null || selectedPage === void 0 ? void 0 : selectedPage.type) === IkasThemePageType.PRODUCT) {
25225
25262
  specification = (_a = selectedPage.specifications) === null || _a === void 0 ? void 0 : _a.find(function (s) { var _a; return s.id === ((_a = _this.pageSpecificData) === null || _a === void 0 ? void 0 : _a.product.id); });
25226
25263
  }
25227
- if ((selectedPage === null || selectedPage === void 0 ? void 0 : selectedPage.type) === IkasThemePageType.CATEGORY) {
25228
- specification = (_b = selectedPage.specifications) === null || _b === void 0 ? void 0 : _b.find(function (s) { var _a; return s.id === ((_a = _this.pageSpecificData) === null || _a === void 0 ? void 0 : _a.id); });
25229
- }
25230
- if ((selectedPage === null || selectedPage === void 0 ? void 0 : selectedPage.type) === IkasThemePageType.BRAND) {
25231
- specification = (_c = selectedPage.specifications) === null || _c === void 0 ? void 0 : _c.find(function (s) { var _a; return s.id === ((_a = _this.pageSpecificData) === null || _a === void 0 ? void 0 : _a.id); });
25264
+ else {
25265
+ specification = (_b = selectedPage === null || selectedPage === void 0 ? void 0 : selectedPage.specifications) === null || _b === void 0 ? void 0 : _b.find(function (s) { var _a; return s.id === ((_a = _this.pageSpecificData) === null || _a === void 0 ? void 0 : _a.id); });
25232
25266
  }
25233
25267
  return specification;
25234
25268
  },
@@ -25245,17 +25279,6 @@ var IkasPageDataProvider = /** @class */ (function () {
25245
25279
  enumerable: false,
25246
25280
  configurable: true
25247
25281
  });
25248
- Object.defineProperty(IkasPageDataProvider.prototype, "isStaticPage", {
25249
- get: function () {
25250
- var staticPageTypes = [
25251
- IkasThemePageType.PRODUCT,
25252
- IkasThemePageType.INDEX,
25253
- ];
25254
- return this.pageType && staticPageTypes.includes(this.pageType);
25255
- },
25256
- enumerable: false,
25257
- configurable: true
25258
- });
25259
25282
  IkasPageDataProvider.prototype.getMerchantSettings = function () {
25260
25283
  return __awaiter(this, void 0, void 0, function () {
25261
25284
  var merchantId, merchantSettingsResponse;
@@ -28735,7 +28758,7 @@ var css_248z$2 = ".common-module_FormSectionTitle___Mykh {\n width: 100%;\n di
28735
28758
  var commonStyles = {"FormSectionTitle":"common-module_FormSectionTitle___Mykh","Title":"common-module_Title__3JTHt","WithSubTitle":"common-module_WithSubTitle__1VHWv","SubTitle":"common-module_SubTitle__1H4kH","Grid":"common-module_Grid__2CuvH","Grid2":"common-module_Grid2__9CCag","Grid3":"common-module_Grid3__3p0jJ","FormContainer":"common-module_FormContainer__2I_Lj","mtFormRow":"common-module_mtFormRow__2tsDn","mt1":"common-module_mt1__3tpC1","mt2":"common-module_mt2__2bl5q","fadeInFromRight":"common-module_fadeInFromRight__3RYk5"};
28736
28759
  styleInject(css_248z$2);
28737
28760
 
28738
- var css_248z$3 = ".style-module_CheckoutPage__A_f2V {\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 16px !important;\n width: 100%;\n height: 100vh;\n overflow: auto;\n overflow-x: hidden;\n display: flex; }\n .style-module_CheckoutPage__A_f2V * {\n box-sizing: border-box !important;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 16px;\n letter-spacing: normal;\n font-weight: normal; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 {\n width: 50%;\n flex: 0 0 auto;\n display: flex;\n justify-content: flex-end;\n padding-left: 20px;\n padding-right: 40px; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 {\n width: 100%;\n min-width: 400px;\n max-width: 600px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n min-height: 100vh; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Space__1e2de {\n width: 100%;\n height: 100px; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg {\n flex: 0 0 auto;\n height: 50px;\n background-color: white;\n width: calc(100% - 1em);\n display: flex;\n align-items: center;\n border-top: 1px solid #d9d9d9; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg .style-module_FooterItem__1ofBc {\n font-size: 0.7em;\n margin-right: 1.4em;\n color: #737373;\n cursor: pointer;\n user-select: none; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg .style-module_FooterItem__1ofBc:hover {\n color: #111111; }\n @media only screen and (max-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg {\n width: 100%;\n padding-left: 0.7em; } }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 {\n width: 100%;\n height: 96px;\n display: flex;\n align-items: center;\n font-weight: 500;\n font-size: 1.5em;\n padding-left: 0.4em; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 a {\n width: 100%; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 .style-module_Logo__2E8Do {\n width: 100%;\n height: 64px;\n position: relative;\n user-select: none;\n cursor: pointer; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 .style-module_Logo__2E8Do img {\n object-fit: contain;\n object-position: left;\n pointer-events: none; }\n @media only screen and (min-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_MobileCartSummary__3NrcP {\n display: none; } }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_RowPB__3M7Tz {\n padding-bottom: 0.7em; }\n @media only screen and (max-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 {\n width: 100%;\n justify-content: center;\n padding-right: 0px;\n padding-left: 0px; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 {\n width: 100%;\n min-width: auto;\n max-width: 100%; } }\n .style-module_CheckoutPage__A_f2V .style-module_Right__3AN4f {\n width: 50%;\n min-height: 100%;\n flex: 0 0 auto;\n background-color: #FAFAFA;\n border-left: 1px solid #d9d9d9;\n display: flex;\n padding-left: 40px;\n padding-right: 20px;\n position: sticky;\n top: 0;\n overflow-y: auto; }\n .style-module_CheckoutPage__A_f2V .style-module_Right__3AN4f .style-module_RightContent__1TcO5 {\n width: 100%;\n max-width: 600px;\n padding-top: 80px; }\n @media only screen and (max-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Right__3AN4f {\n display: none; } }\n";
28761
+ var css_248z$3 = ".style-module_CheckoutPage__A_f2V {\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 16px !important;\n width: 100%;\n height: 100vh;\n overflow: auto;\n overflow-x: hidden;\n display: flex; }\n .style-module_CheckoutPage__A_f2V * {\n box-sizing: border-box !important;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 16px;\n letter-spacing: normal;\n font-weight: normal;\n line-height: 1.5em; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 {\n width: 50%;\n flex: 0 0 auto;\n display: flex;\n justify-content: flex-end;\n padding-left: 20px;\n padding-right: 40px; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 {\n width: 100%;\n min-width: 400px;\n max-width: 600px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n min-height: 100vh; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Space__1e2de {\n width: 100%;\n height: 100px; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg {\n flex: 0 0 auto;\n height: 50px;\n background-color: white;\n width: calc(100% - 1em);\n display: flex;\n align-items: center;\n border-top: 1px solid #d9d9d9; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg .style-module_FooterItem__1ofBc {\n font-size: 0.7em;\n margin-right: 1.4em;\n color: #737373;\n cursor: pointer;\n user-select: none; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg .style-module_FooterItem__1ofBc:hover {\n color: #111111; }\n @media only screen and (max-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg {\n width: 100%;\n padding-left: 0.7em; } }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 {\n width: 100%;\n height: 96px;\n display: flex;\n align-items: center;\n font-weight: 500;\n font-size: 1.5em;\n padding-left: 0.4em; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 a {\n width: 100%; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 .style-module_Logo__2E8Do {\n width: 100%;\n height: 64px;\n position: relative;\n user-select: none;\n cursor: pointer; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 .style-module_Logo__2E8Do img {\n object-fit: contain;\n object-position: left;\n pointer-events: none; }\n @media only screen and (min-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_MobileCartSummary__3NrcP {\n display: none; } }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_RowPB__3M7Tz {\n padding-bottom: 0.7em; }\n @media only screen and (max-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 {\n width: 100%;\n justify-content: center;\n padding-right: 0px;\n padding-left: 0px; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 {\n width: 100%;\n min-width: auto;\n max-width: 100%; } }\n .style-module_CheckoutPage__A_f2V .style-module_Right__3AN4f {\n width: 50%;\n min-height: 100%;\n flex: 0 0 auto;\n background-color: #FAFAFA;\n border-left: 1px solid #d9d9d9;\n display: flex;\n padding-left: 40px;\n padding-right: 20px;\n position: sticky;\n top: 0;\n overflow-y: auto; }\n .style-module_CheckoutPage__A_f2V .style-module_Right__3AN4f .style-module_RightContent__1TcO5 {\n width: 100%;\n max-width: 600px;\n padding-top: 80px; }\n @media only screen and (max-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Right__3AN4f {\n display: none; } }\n";
28739
28762
  var styles$2 = {"CheckoutPage":"style-module_CheckoutPage__A_f2V","Left":"style-module_Left__2dWz6","LeftContent":"style-module_LeftContent__1Tyb7","Space":"style-module_Space__1e2de","Footer":"style-module_Footer__ebdyg","FooterItem":"style-module_FooterItem__1ofBc","Header":"style-module_Header__1vfF1","Logo":"style-module_Logo__2E8Do","MobileCartSummary":"style-module_MobileCartSummary__3NrcP","RowPB":"style-module_RowPB__3M7Tz","Right":"style-module_Right__3AN4f","RightContent":"style-module_RightContent__1TcO5"};
28740
28763
  styleInject(css_248z$3);
28741
28764
 
@@ -28795,7 +28818,7 @@ var css_248z$5 = ".style-module_BackButtonContainer__263Fp {\n display: flex;\n
28795
28818
  var styles$4 = {"BackButtonContainer":"style-module_BackButtonContainer__263Fp","Actions":"style-module_Actions__EdBBN"};
28796
28819
  styleInject(css_248z$5);
28797
28820
 
28798
- var css_248z$6 = ".style-module_TextButton__XicpL {\n display: inline-flex;\n align-items: center;\n font-size: 0.8em;\n cursor: pointer;\n user-select: none; }\n .style-module_TextButton__XicpL .style-module_Icon__1W8cY {\n margin-right: 0.1em; }\n";
28821
+ var css_248z$6 = ".style-module_TextButton__XicpL {\n display: inline-flex;\n align-items: center;\n font-size: 0.8em;\n cursor: pointer;\n user-select: none; }\n .style-module_TextButton__XicpL .style-module_Icon__1W8cY {\n height: 24px;\n margin-right: 0.1em; }\n";
28799
28822
  var styles$5 = {"TextButton":"style-module_TextButton__XicpL","Icon":"style-module_Icon__1W8cY"};
28800
28823
  styleInject(css_248z$6);
28801
28824
 
@@ -30250,14 +30273,12 @@ var ThemeEditorComponent = observer(function (_a) {
30250
30273
  var isHovered = computed(function () {
30251
30274
  return vm.hoveredPageComponentId === pageComponent.id;
30252
30275
  });
30253
- var hasNullValue = computed(function () {
30254
- return Object.entries(propValues || {}).some(function (_a) {
30255
- var _b, _c;
30256
- var propName = _a[0], propValue = _a[1];
30257
- return (propValue === null || propValue === undefined) && ((_c = (_b = pageComponentPropValue
30258
- .get()) === null || _b === void 0 ? void 0 : _b.component.props.find(function (p) { return p.name === propName; })) === null || _c === void 0 ? void 0 : _c.isRequired);
30259
- });
30260
- });
30276
+ var hasNullValue = computed(function () { var _a; return (_a = pageComponentPropValue.get()) === null || _a === void 0 ? void 0 : _a.component.props.some(function (prop) {
30277
+ if (prop.isRequired) {
30278
+ var propValue = (propValues || {})[prop.name];
30279
+ return propValue === null || propValue == undefined;
30280
+ }
30281
+ }); });
30261
30282
  var onMouseEnter = function () {
30262
30283
  vm.onMouseOver(pageComponent.id);
30263
30284
  };
@@ -31377,6 +31398,7 @@ var IkasBaseStore = /** @class */ (function () {
31377
31398
  this.showLocaleOptions = false;
31378
31399
  this.localeChecked = false;
31379
31400
  this.settingsSet = false;
31401
+ this.infiniteScrollPages = {}; // key is productListPropValueId
31380
31402
  this.customerStore = new IkasCustomerStore(this);
31381
31403
  this.cartStore = new IkasCartStore(this);
31382
31404
  makeObservable(this, {
package/build/index.js CHANGED
@@ -21121,7 +21121,7 @@ var IkasProductList = /** @class */ (function () {
21121
21121
  _b.label = 1;
21122
21122
  case 1:
21123
21123
  _b.trys.push([1, 5, 6, 7]);
21124
- page = 1;
21124
+ page = this._page || 1;
21125
21125
  limit = this._limit;
21126
21126
  if (!(this.isFilterable && !this.filters)) return [3 /*break*/, 3];
21127
21127
  return [4 /*yield*/, this.getFilters()];
@@ -21343,6 +21343,9 @@ var IkasProductList = /** @class */ (function () {
21343
21343
  : null;
21344
21344
  this.router = router;
21345
21345
  mobx.makeAutoObservable(this);
21346
+ if (this.isBrowser()) {
21347
+ this.checkRestoreInfiniteScroll();
21348
+ }
21346
21349
  if (this.isBrowser() &&
21347
21350
  location.search &&
21348
21351
  (this.isFilterable || this._type === exports.IkasProductListType.SEARCH)) {
@@ -21364,6 +21367,13 @@ var IkasProductList = /** @class */ (function () {
21364
21367
  enumerable: false,
21365
21368
  configurable: true
21366
21369
  });
21370
+ Object.defineProperty(IkasProductList.prototype, "pageType", {
21371
+ get: function () {
21372
+ return this._pageType;
21373
+ },
21374
+ enumerable: false,
21375
+ configurable: true
21376
+ });
21367
21377
  Object.defineProperty(IkasProductList.prototype, "page", {
21368
21378
  get: function () {
21369
21379
  return this._page;
@@ -21735,6 +21745,11 @@ var IkasProductList = /** @class */ (function () {
21735
21745
  });
21736
21746
  });
21737
21747
  };
21748
+ IkasProductList.prototype.setVisibleInfiniteScrollPage = function (page) {
21749
+ //@ts-ignore
21750
+ var infiniteScrollPages = IkasStorefrontConfig.store.infiniteScrollPages;
21751
+ infiniteScrollPages[this._productListPropValue.id] = page;
21752
+ };
21738
21753
  IkasProductList.prototype.toJSON = function () {
21739
21754
  return {
21740
21755
  data: this.data,
@@ -21755,6 +21770,22 @@ var IkasProductList = /** @class */ (function () {
21755
21770
  productListPropValue: this._productListPropValue,
21756
21771
  };
21757
21772
  };
21773
+ IkasProductList.prototype.checkRestoreInfiniteScroll = function () {
21774
+ //@ts-ignore
21775
+ var infiniteScrollPages = IkasStorefrontConfig.store.infiniteScrollPages;
21776
+ var page = infiniteScrollPages[this._productListPropValue.id];
21777
+ if (page) {
21778
+ if (this.hasForwardRoute()) {
21779
+ this._page = page;
21780
+ }
21781
+ else {
21782
+ delete infiniteScrollPages[this._productListPropValue.id];
21783
+ }
21784
+ }
21785
+ };
21786
+ IkasProductList.prototype.hasForwardRoute = function () {
21787
+ return this.isBrowser() && !!window.history.forward;
21788
+ };
21758
21789
  IkasProductList.prototype.getQueryParams = function () {
21759
21790
  if (!this.isBrowser())
21760
21791
  return;
@@ -23689,6 +23720,7 @@ var IkasProductListPropValue = /** @class */ (function () {
23689
23720
  // Example collections/man -> lists products inside the "man" category
23690
23721
  this.usePageFilter = null;
23691
23722
  this.category = null;
23723
+ this.id = data.id || "";
23692
23724
  this.productListType = data.productListType || exports.IkasProductListType.ALL;
23693
23725
  this.initialSort = data.initialSort || exports.IkasProductListSortType.LAST_ADDED;
23694
23726
  this.initialLimit = data.initialLimit || 20;
@@ -24409,7 +24441,11 @@ var IkasCustomPropValueProvider = /** @class */ (function () {
24409
24441
  case 40:
24410
24442
  _b.sent();
24411
24443
  return [2 /*return*/];
24412
- case 41: return [2 /*return*/, JSON.parse(JSON.stringify(customDataValue))];
24444
+ case 41:
24445
+ if (this.customData.isRequired &&
24446
+ ((customDataValue === null || customDataValue === void 0 ? void 0 : customDataValue.value) === undefined || (customDataValue === null || customDataValue === void 0 ? void 0 : customDataValue.value) === null))
24447
+ return [2 /*return*/];
24448
+ return [2 /*return*/, JSON.parse(JSON.stringify(customDataValue))];
24413
24449
  }
24414
24450
  });
24415
24451
  });
@@ -24821,10 +24857,11 @@ var ThemeComponent = mobxReactLite.observer(function (_a) {
24821
24857
  var pageComponent = pageComponentPropValue.pageComponent;
24822
24858
  var propValues = pageComponentPropValue.propValues;
24823
24859
  var hasNullValue = mobx.computed(function () {
24824
- return Object.entries(propValues || {}).some(function (_a) {
24825
- var _b;
24826
- var propName = _a[0], propValue = _a[1];
24827
- return (propValue === null || propValue === undefined) && ((_b = pageComponentPropValue.component.props.find(function (p) { return p.name === propName; })) === null || _b === void 0 ? void 0 : _b.isRequired);
24860
+ return pageComponentPropValue.component.props.some(function (prop) {
24861
+ if (prop.isRequired) {
24862
+ var propValue = (propValues || {})[prop.name];
24863
+ return propValue === null || propValue == undefined;
24864
+ }
24828
24865
  });
24829
24866
  });
24830
24867
  var Component = components[pageComponent.componentId];
@@ -25198,17 +25235,14 @@ var IkasPageDataProvider = /** @class */ (function () {
25198
25235
  Object.defineProperty(IkasPageDataProvider.prototype, "specification", {
25199
25236
  get: function () {
25200
25237
  var _this = this;
25201
- var _a, _b, _c;
25238
+ var _a, _b;
25202
25239
  var selectedPage = this.page;
25203
25240
  var specification;
25204
25241
  if ((selectedPage === null || selectedPage === void 0 ? void 0 : selectedPage.type) === exports.IkasThemePageType.PRODUCT) {
25205
25242
  specification = (_a = selectedPage.specifications) === null || _a === void 0 ? void 0 : _a.find(function (s) { var _a; return s.id === ((_a = _this.pageSpecificData) === null || _a === void 0 ? void 0 : _a.product.id); });
25206
25243
  }
25207
- if ((selectedPage === null || selectedPage === void 0 ? void 0 : selectedPage.type) === exports.IkasThemePageType.CATEGORY) {
25208
- specification = (_b = selectedPage.specifications) === null || _b === void 0 ? void 0 : _b.find(function (s) { var _a; return s.id === ((_a = _this.pageSpecificData) === null || _a === void 0 ? void 0 : _a.id); });
25209
- }
25210
- if ((selectedPage === null || selectedPage === void 0 ? void 0 : selectedPage.type) === exports.IkasThemePageType.BRAND) {
25211
- specification = (_c = selectedPage.specifications) === null || _c === void 0 ? void 0 : _c.find(function (s) { var _a; return s.id === ((_a = _this.pageSpecificData) === null || _a === void 0 ? void 0 : _a.id); });
25244
+ else {
25245
+ specification = (_b = selectedPage === null || selectedPage === void 0 ? void 0 : selectedPage.specifications) === null || _b === void 0 ? void 0 : _b.find(function (s) { var _a; return s.id === ((_a = _this.pageSpecificData) === null || _a === void 0 ? void 0 : _a.id); });
25212
25246
  }
25213
25247
  return specification;
25214
25248
  },
@@ -25225,17 +25259,6 @@ var IkasPageDataProvider = /** @class */ (function () {
25225
25259
  enumerable: false,
25226
25260
  configurable: true
25227
25261
  });
25228
- Object.defineProperty(IkasPageDataProvider.prototype, "isStaticPage", {
25229
- get: function () {
25230
- var staticPageTypes = [
25231
- exports.IkasThemePageType.PRODUCT,
25232
- exports.IkasThemePageType.INDEX,
25233
- ];
25234
- return this.pageType && staticPageTypes.includes(this.pageType);
25235
- },
25236
- enumerable: false,
25237
- configurable: true
25238
- });
25239
25262
  IkasPageDataProvider.prototype.getMerchantSettings = function () {
25240
25263
  return __awaiter(this, void 0, void 0, function () {
25241
25264
  var merchantId, merchantSettingsResponse;
@@ -28714,7 +28737,7 @@ var css_248z$2 = ".common-module_FormSectionTitle___Mykh {\n width: 100%;\n di
28714
28737
  var commonStyles = {"FormSectionTitle":"common-module_FormSectionTitle___Mykh","Title":"common-module_Title__3JTHt","WithSubTitle":"common-module_WithSubTitle__1VHWv","SubTitle":"common-module_SubTitle__1H4kH","Grid":"common-module_Grid__2CuvH","Grid2":"common-module_Grid2__9CCag","Grid3":"common-module_Grid3__3p0jJ","FormContainer":"common-module_FormContainer__2I_Lj","mtFormRow":"common-module_mtFormRow__2tsDn","mt1":"common-module_mt1__3tpC1","mt2":"common-module_mt2__2bl5q","fadeInFromRight":"common-module_fadeInFromRight__3RYk5"};
28715
28738
  styleInject(css_248z$2);
28716
28739
 
28717
- var css_248z$3 = ".style-module_CheckoutPage__A_f2V {\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 16px !important;\n width: 100%;\n height: 100vh;\n overflow: auto;\n overflow-x: hidden;\n display: flex; }\n .style-module_CheckoutPage__A_f2V * {\n box-sizing: border-box !important;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 16px;\n letter-spacing: normal;\n font-weight: normal; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 {\n width: 50%;\n flex: 0 0 auto;\n display: flex;\n justify-content: flex-end;\n padding-left: 20px;\n padding-right: 40px; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 {\n width: 100%;\n min-width: 400px;\n max-width: 600px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n min-height: 100vh; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Space__1e2de {\n width: 100%;\n height: 100px; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg {\n flex: 0 0 auto;\n height: 50px;\n background-color: white;\n width: calc(100% - 1em);\n display: flex;\n align-items: center;\n border-top: 1px solid #d9d9d9; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg .style-module_FooterItem__1ofBc {\n font-size: 0.7em;\n margin-right: 1.4em;\n color: #737373;\n cursor: pointer;\n user-select: none; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg .style-module_FooterItem__1ofBc:hover {\n color: #111111; }\n @media only screen and (max-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg {\n width: 100%;\n padding-left: 0.7em; } }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 {\n width: 100%;\n height: 96px;\n display: flex;\n align-items: center;\n font-weight: 500;\n font-size: 1.5em;\n padding-left: 0.4em; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 a {\n width: 100%; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 .style-module_Logo__2E8Do {\n width: 100%;\n height: 64px;\n position: relative;\n user-select: none;\n cursor: pointer; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 .style-module_Logo__2E8Do img {\n object-fit: contain;\n object-position: left;\n pointer-events: none; }\n @media only screen and (min-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_MobileCartSummary__3NrcP {\n display: none; } }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_RowPB__3M7Tz {\n padding-bottom: 0.7em; }\n @media only screen and (max-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 {\n width: 100%;\n justify-content: center;\n padding-right: 0px;\n padding-left: 0px; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 {\n width: 100%;\n min-width: auto;\n max-width: 100%; } }\n .style-module_CheckoutPage__A_f2V .style-module_Right__3AN4f {\n width: 50%;\n min-height: 100%;\n flex: 0 0 auto;\n background-color: #FAFAFA;\n border-left: 1px solid #d9d9d9;\n display: flex;\n padding-left: 40px;\n padding-right: 20px;\n position: sticky;\n top: 0;\n overflow-y: auto; }\n .style-module_CheckoutPage__A_f2V .style-module_Right__3AN4f .style-module_RightContent__1TcO5 {\n width: 100%;\n max-width: 600px;\n padding-top: 80px; }\n @media only screen and (max-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Right__3AN4f {\n display: none; } }\n";
28740
+ var css_248z$3 = ".style-module_CheckoutPage__A_f2V {\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 16px !important;\n width: 100%;\n height: 100vh;\n overflow: auto;\n overflow-x: hidden;\n display: flex; }\n .style-module_CheckoutPage__A_f2V * {\n box-sizing: border-box !important;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 16px;\n letter-spacing: normal;\n font-weight: normal;\n line-height: 1.5em; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 {\n width: 50%;\n flex: 0 0 auto;\n display: flex;\n justify-content: flex-end;\n padding-left: 20px;\n padding-right: 40px; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 {\n width: 100%;\n min-width: 400px;\n max-width: 600px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n min-height: 100vh; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Space__1e2de {\n width: 100%;\n height: 100px; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg {\n flex: 0 0 auto;\n height: 50px;\n background-color: white;\n width: calc(100% - 1em);\n display: flex;\n align-items: center;\n border-top: 1px solid #d9d9d9; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg .style-module_FooterItem__1ofBc {\n font-size: 0.7em;\n margin-right: 1.4em;\n color: #737373;\n cursor: pointer;\n user-select: none; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg .style-module_FooterItem__1ofBc:hover {\n color: #111111; }\n @media only screen and (max-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 .style-module_Footer__ebdyg {\n width: 100%;\n padding-left: 0.7em; } }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 {\n width: 100%;\n height: 96px;\n display: flex;\n align-items: center;\n font-weight: 500;\n font-size: 1.5em;\n padding-left: 0.4em; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 a {\n width: 100%; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 .style-module_Logo__2E8Do {\n width: 100%;\n height: 64px;\n position: relative;\n user-select: none;\n cursor: pointer; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_Header__1vfF1 .style-module_Logo__2E8Do img {\n object-fit: contain;\n object-position: left;\n pointer-events: none; }\n @media only screen and (min-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_MobileCartSummary__3NrcP {\n display: none; } }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_RowPB__3M7Tz {\n padding-bottom: 0.7em; }\n @media only screen and (max-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 {\n width: 100%;\n justify-content: center;\n padding-right: 0px;\n padding-left: 0px; }\n .style-module_CheckoutPage__A_f2V .style-module_Left__2dWz6 .style-module_LeftContent__1Tyb7 {\n width: 100%;\n min-width: auto;\n max-width: 100%; } }\n .style-module_CheckoutPage__A_f2V .style-module_Right__3AN4f {\n width: 50%;\n min-height: 100%;\n flex: 0 0 auto;\n background-color: #FAFAFA;\n border-left: 1px solid #d9d9d9;\n display: flex;\n padding-left: 40px;\n padding-right: 20px;\n position: sticky;\n top: 0;\n overflow-y: auto; }\n .style-module_CheckoutPage__A_f2V .style-module_Right__3AN4f .style-module_RightContent__1TcO5 {\n width: 100%;\n max-width: 600px;\n padding-top: 80px; }\n @media only screen and (max-width: 1000px) {\n .style-module_CheckoutPage__A_f2V .style-module_Right__3AN4f {\n display: none; } }\n";
28718
28741
  var styles$2 = {"CheckoutPage":"style-module_CheckoutPage__A_f2V","Left":"style-module_Left__2dWz6","LeftContent":"style-module_LeftContent__1Tyb7","Space":"style-module_Space__1e2de","Footer":"style-module_Footer__ebdyg","FooterItem":"style-module_FooterItem__1ofBc","Header":"style-module_Header__1vfF1","Logo":"style-module_Logo__2E8Do","MobileCartSummary":"style-module_MobileCartSummary__3NrcP","RowPB":"style-module_RowPB__3M7Tz","Right":"style-module_Right__3AN4f","RightContent":"style-module_RightContent__1TcO5"};
28719
28742
  styleInject(css_248z$3);
28720
28743
 
@@ -28774,7 +28797,7 @@ var css_248z$5 = ".style-module_BackButtonContainer__263Fp {\n display: flex;\n
28774
28797
  var styles$4 = {"BackButtonContainer":"style-module_BackButtonContainer__263Fp","Actions":"style-module_Actions__EdBBN"};
28775
28798
  styleInject(css_248z$5);
28776
28799
 
28777
- var css_248z$6 = ".style-module_TextButton__XicpL {\n display: inline-flex;\n align-items: center;\n font-size: 0.8em;\n cursor: pointer;\n user-select: none; }\n .style-module_TextButton__XicpL .style-module_Icon__1W8cY {\n margin-right: 0.1em; }\n";
28800
+ var css_248z$6 = ".style-module_TextButton__XicpL {\n display: inline-flex;\n align-items: center;\n font-size: 0.8em;\n cursor: pointer;\n user-select: none; }\n .style-module_TextButton__XicpL .style-module_Icon__1W8cY {\n height: 24px;\n margin-right: 0.1em; }\n";
28778
28801
  var styles$5 = {"TextButton":"style-module_TextButton__XicpL","Icon":"style-module_Icon__1W8cY"};
28779
28802
  styleInject(css_248z$6);
28780
28803
 
@@ -30229,14 +30252,12 @@ var ThemeEditorComponent = mobxReactLite.observer(function (_a) {
30229
30252
  var isHovered = mobx.computed(function () {
30230
30253
  return vm.hoveredPageComponentId === pageComponent.id;
30231
30254
  });
30232
- var hasNullValue = mobx.computed(function () {
30233
- return Object.entries(propValues || {}).some(function (_a) {
30234
- var _b, _c;
30235
- var propName = _a[0], propValue = _a[1];
30236
- return (propValue === null || propValue === undefined) && ((_c = (_b = pageComponentPropValue
30237
- .get()) === null || _b === void 0 ? void 0 : _b.component.props.find(function (p) { return p.name === propName; })) === null || _c === void 0 ? void 0 : _c.isRequired);
30238
- });
30239
- });
30255
+ var hasNullValue = mobx.computed(function () { var _a; return (_a = pageComponentPropValue.get()) === null || _a === void 0 ? void 0 : _a.component.props.some(function (prop) {
30256
+ if (prop.isRequired) {
30257
+ var propValue = (propValues || {})[prop.name];
30258
+ return propValue === null || propValue == undefined;
30259
+ }
30260
+ }); });
30240
30261
  var onMouseEnter = function () {
30241
30262
  vm.onMouseOver(pageComponent.id);
30242
30263
  };
@@ -31356,6 +31377,7 @@ var IkasBaseStore = /** @class */ (function () {
31356
31377
  this.showLocaleOptions = false;
31357
31378
  this.localeChecked = false;
31358
31379
  this.settingsSet = false;
31380
+ this.infiniteScrollPages = {}; // key is productListPropValueId
31359
31381
  this.customerStore = new IkasCustomerStore(this);
31360
31382
  this.cartStore = new IkasCartStore(this);
31361
31383
  mobx.makeObservable(this, {
@@ -1,5 +1,6 @@
1
1
  import { IkasProductListSortType, IkasProductListType } from "../../../../ui/index";
2
2
  export declare class IkasProductListPropValue {
3
+ id: string;
3
4
  productListType: IkasProductListType;
4
5
  initialSort?: IkasProductListSortType | null;
5
6
  initialLimit?: number | null;
@@ -26,6 +26,7 @@ export declare class IkasProductList {
26
26
  constructor(data: IkasProductListParams, router?: NextRouter);
27
27
  get sort(): IkasProductListSortType;
28
28
  get limit(): number;
29
+ get pageType(): IkasThemePageType;
29
30
  get page(): number;
30
31
  get count(): number;
31
32
  get pageCount(): number;
@@ -57,6 +58,7 @@ export declare class IkasProductList {
57
58
  getPage: (page: number) => Promise<void>;
58
59
  setSortType(sortType: IkasProductListSortType): Promise<void>;
59
60
  onFilterCategoryClick(filterCategory: IkasFilterCategory, disableRoute?: boolean): Promise<void>;
61
+ setVisibleInfiniteScrollPage(page: number): void;
60
62
  toJSON(): {
61
63
  data: IkasProductDetail[];
62
64
  type: IkasProductListType;
@@ -75,6 +77,8 @@ export declare class IkasProductList {
75
77
  recommendFor: string | null | undefined;
76
78
  productListPropValue: IkasProductListPropValue;
77
79
  };
80
+ private checkRestoreInfiniteScroll;
81
+ private hasForwardRoute;
78
82
  private getQueryParams;
79
83
  private isBrowser;
80
84
  private searchDebouncer;
@@ -10,6 +10,7 @@ export declare class IkasBaseStore {
10
10
  showLocaleOptions: boolean;
11
11
  private localeChecked;
12
12
  private settingsSet;
13
+ private infiniteScrollPages;
13
14
  constructor();
14
15
  checkLocalization(): Promise<void>;
15
16
  setLocalization(localeOption: IkasLocaleOption): void;
@@ -40,7 +40,6 @@ export declare class IkasPageDataProvider {
40
40
  };
41
41
  get specification(): IkasThemePageSpecification | undefined;
42
42
  get pageComponents(): IkasThemePageComponent[];
43
- get isStaticPage(): boolean | null | undefined;
44
43
  getMerchantSettings(): Promise<void>;
45
44
  getPageData(): Promise<void>;
46
45
  getPageSpecificData(): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikas/storefront",
3
- "version": "0.0.151",
3
+ "version": "0.0.153",
4
4
  "main": "./build/index.js",
5
5
  "module": "./build/index.es.js",
6
6
  "author": "Umut Ozan Yıldırım",