@ikas/storefront 0.0.158-alpha.4 → 0.0.158-alpha.5
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/__generated__/global-types.d.ts +24 -0
- package/build/api/customer/__generated__/customerLogin.d.ts +2 -1
- package/build/api/customer/__generated__/getLastViewedProducts.d.ts +15 -0
- package/build/api/customer/__generated__/saveLastViewedProducts.d.ts +11 -0
- package/build/api/customer/index.d.ts +13 -1
- package/build/index.es.js +251 -39
- package/build/index.js +251 -39
- package/build/models/ui/product-list/index.d.ts +4 -1
- package/build/store/customer.d.ts +13 -6
- package/package.json +1 -1
|
@@ -73,6 +73,14 @@ export declare enum CustomerAccountStatusesEnum {
|
|
|
73
73
|
DISABLED_ACCOUNT = "DISABLED_ACCOUNT",
|
|
74
74
|
INVITED_TO_CREATE_ACCOUNT = "INVITED_TO_CREATE_ACCOUNT"
|
|
75
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Customer Email Subscription Statuses
|
|
78
|
+
*/
|
|
79
|
+
export declare enum CustomerEmailSubscriptionStatusesEnum {
|
|
80
|
+
NOT_SUBSCRIBED = "NOT_SUBSCRIBED",
|
|
81
|
+
PENDING_CONFIRMATION = "PENDING_CONFIRMATION",
|
|
82
|
+
SUBSCRIBED = "SUBSCRIBED"
|
|
83
|
+
}
|
|
76
84
|
/**
|
|
77
85
|
* Url Slug Target Type Enum Codes
|
|
78
86
|
*/
|
|
@@ -446,6 +454,22 @@ export interface PaymentMethodDetailInput {
|
|
|
446
454
|
installmentCount: number;
|
|
447
455
|
threeDSecure: boolean;
|
|
448
456
|
}
|
|
457
|
+
export interface ProductItemInput {
|
|
458
|
+
createdAt?: any | null;
|
|
459
|
+
deleted?: boolean | null;
|
|
460
|
+
id?: string | null;
|
|
461
|
+
productId: string;
|
|
462
|
+
updatedAt?: any | null;
|
|
463
|
+
variantId: string;
|
|
464
|
+
}
|
|
465
|
+
export interface ProductLastViewedInput {
|
|
466
|
+
createdAt?: any | null;
|
|
467
|
+
customerId: string;
|
|
468
|
+
deleted?: boolean | null;
|
|
469
|
+
id?: string | null;
|
|
470
|
+
products: ProductItemInput[];
|
|
471
|
+
updatedAt?: any | null;
|
|
472
|
+
}
|
|
449
473
|
export interface RetrieveInstallmentInfoInput {
|
|
450
474
|
binNumber: string;
|
|
451
475
|
paymentGatewayId: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CustomerAccountStatusesEnum } from "../../../__generated__/global-types";
|
|
1
|
+
import { CustomerAccountStatusesEnum, CustomerEmailSubscriptionStatusesEnum } from "../../../__generated__/global-types";
|
|
2
2
|
export interface customerLogin_customerLogin_customer_addresses_city {
|
|
3
3
|
__typename: "CustomerAddressCity";
|
|
4
4
|
code: string | null;
|
|
@@ -53,6 +53,7 @@ export interface customerLogin_customerLogin_customer {
|
|
|
53
53
|
accountStatus: CustomerAccountStatusesEnum | null;
|
|
54
54
|
email: string | null;
|
|
55
55
|
firstName: string;
|
|
56
|
+
subscriptionStatus: CustomerEmailSubscriptionStatusesEnum | null;
|
|
56
57
|
}
|
|
57
58
|
export interface customerLogin_customerLogin {
|
|
58
59
|
__typename: "CustomerLoginResponse";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface getLastViewedProducts_getLastViewedProducts_products {
|
|
2
|
+
__typename: "ProductItem";
|
|
3
|
+
productId: string;
|
|
4
|
+
variantId: string;
|
|
5
|
+
}
|
|
6
|
+
export interface getLastViewedProducts_getLastViewedProducts {
|
|
7
|
+
__typename: "ProductLastViewed";
|
|
8
|
+
products: getLastViewedProducts_getLastViewedProducts_products[];
|
|
9
|
+
}
|
|
10
|
+
export interface getLastViewedProducts {
|
|
11
|
+
getLastViewedProducts: getLastViewedProducts_getLastViewedProducts;
|
|
12
|
+
}
|
|
13
|
+
export interface getLastViewedProductsVariables {
|
|
14
|
+
customerId?: string | null;
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ProductLastViewedInput } from "../../../__generated__/global-types";
|
|
2
|
+
export interface saveLastViewedProducts_saveLastViewedProducts {
|
|
3
|
+
__typename: "ProductLastViewed";
|
|
4
|
+
id: string;
|
|
5
|
+
}
|
|
6
|
+
export interface saveLastViewedProducts {
|
|
7
|
+
saveLastViewedProducts: saveLastViewedProducts_saveLastViewedProducts;
|
|
8
|
+
}
|
|
9
|
+
export interface saveLastViewedProductsVariables {
|
|
10
|
+
input: ProductLastViewedInput;
|
|
11
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IkasCustomer, IkasOrder } from "../../models/index";
|
|
2
|
-
import * as RefreshTokenTypes from "./__generated__/customerRefreshToken";
|
|
3
2
|
import { IkasRefund } from "../../models/data/order/refund/index";
|
|
3
|
+
import * as RefreshTokenTypes from "./__generated__/customerRefreshToken";
|
|
4
|
+
import * as GetLastViewedProductsTypes from "./__generated__/getLastViewedProducts";
|
|
4
5
|
export declare class IkasCustomerAPI {
|
|
5
6
|
static login(email: string, password: string): Promise<{
|
|
6
7
|
customer: IkasCustomer;
|
|
@@ -28,4 +29,15 @@ export declare class IkasCustomerAPI {
|
|
|
28
29
|
}): Promise<any>;
|
|
29
30
|
static saveIkasOrderRefund(input: IkasRefund): Promise<IkasOrder | undefined>;
|
|
30
31
|
static createCustomerEmailSubscription(email: string): Promise<boolean>;
|
|
32
|
+
static getLastViewedProducts(customerId: string): Promise<GetLastViewedProductsTypes.getLastViewedProducts_getLastViewedProducts_products[]>;
|
|
33
|
+
static saveLastViewedProducts(input: LastViewedProductInput): Promise<boolean>;
|
|
31
34
|
}
|
|
35
|
+
declare type LastViewedProduct = {
|
|
36
|
+
productId: string;
|
|
37
|
+
variantId: string;
|
|
38
|
+
};
|
|
39
|
+
declare type LastViewedProductInput = {
|
|
40
|
+
customerId: string;
|
|
41
|
+
products: LastViewedProduct[];
|
|
42
|
+
};
|
|
43
|
+
export {};
|
package/build/index.es.js
CHANGED
|
@@ -11171,7 +11171,7 @@ var IkasOrderAddress = /** @class */ (function () {
|
|
|
11171
11171
|
});
|
|
11172
11172
|
Object.defineProperty(IkasOrderAddress.prototype, "validationResult", {
|
|
11173
11173
|
get: function () {
|
|
11174
|
-
var _a, _b, _c, _d
|
|
11174
|
+
var _a, _b, _c, _d;
|
|
11175
11175
|
var isValidPhone = !!this.phone &&
|
|
11176
11176
|
this.phone.length >= 10 &&
|
|
11177
11177
|
validatePhoneNumber(this.phone);
|
|
@@ -11192,10 +11192,7 @@ var IkasOrderAddress = /** @class */ (function () {
|
|
|
11192
11192
|
? isValidPhone
|
|
11193
11193
|
: true,
|
|
11194
11194
|
identityNumber: ((_d = this.checkoutSettings) === null || _d === void 0 ? void 0 : _d.identityNumberRequirement) ===
|
|
11195
|
-
IkasCheckoutRequirementEnum.MANDATORY
|
|
11196
|
-
(((_e = this.checkoutSettings) === null || _e === void 0 ? void 0 : _e.identityNumberRequirement) ===
|
|
11197
|
-
IkasCheckoutRequirementEnum.OPTIONAL &&
|
|
11198
|
-
this.phone)
|
|
11195
|
+
IkasCheckoutRequirementEnum.MANDATORY
|
|
11199
11196
|
? !!this.identityNumber
|
|
11200
11197
|
: true,
|
|
11201
11198
|
};
|
|
@@ -17475,6 +17472,7 @@ var LS_TOKEN_KEY = "customerToken";
|
|
|
17475
17472
|
var LS_TOKEN_EXPIRY = "customerTokenExpiry";
|
|
17476
17473
|
var LS_CUSTOMER_KEY = "customer";
|
|
17477
17474
|
var LS_CUSTOMER_SUB_KEY = "customerEmailSubscription";
|
|
17475
|
+
var LS_LAST_VIEWED_PRODUCTS_KEY = "lastViewedProducts";
|
|
17478
17476
|
var IkasCustomerStore = /** @class */ (function () {
|
|
17479
17477
|
function IkasCustomerStore(baseStore) {
|
|
17480
17478
|
var _this = this;
|
|
@@ -17484,6 +17482,7 @@ var IkasCustomerStore = /** @class */ (function () {
|
|
|
17484
17482
|
this.baseStore = null;
|
|
17485
17483
|
this._initialized = false;
|
|
17486
17484
|
this._visitorSubscribedEmail = false;
|
|
17485
|
+
this._lastViewedProducts = [];
|
|
17487
17486
|
this.login = function (email, password) { return __awaiter(_this, void 0, void 0, function () {
|
|
17488
17487
|
var response, cart;
|
|
17489
17488
|
var _a;
|
|
@@ -17503,7 +17502,9 @@ var IkasCustomerStore = /** @class */ (function () {
|
|
|
17503
17502
|
case 2:
|
|
17504
17503
|
_b.sent();
|
|
17505
17504
|
_b.label = 3;
|
|
17506
|
-
case 3:
|
|
17505
|
+
case 3:
|
|
17506
|
+
this.saveLocalLastViewedProducts();
|
|
17507
|
+
return [2 /*return*/, true];
|
|
17507
17508
|
case 4: return [2 /*return*/, false];
|
|
17508
17509
|
}
|
|
17509
17510
|
});
|
|
@@ -17518,6 +17519,7 @@ var IkasCustomerStore = /** @class */ (function () {
|
|
|
17518
17519
|
if (response) {
|
|
17519
17520
|
this.setToken(response.token, response.tokenExpiry);
|
|
17520
17521
|
this.setCustomer(response.customer);
|
|
17522
|
+
this.saveLocalLastViewedProducts();
|
|
17521
17523
|
return [2 /*return*/, true];
|
|
17522
17524
|
}
|
|
17523
17525
|
return [2 /*return*/, false];
|
|
@@ -17762,6 +17764,7 @@ var IkasCustomerStore = /** @class */ (function () {
|
|
|
17762
17764
|
case 0:
|
|
17763
17765
|
this.loadToken();
|
|
17764
17766
|
this.loadCustomer();
|
|
17767
|
+
this.loadLastViewedProducts();
|
|
17765
17768
|
return [4 /*yield*/, this.refreshToken()];
|
|
17766
17769
|
case 1:
|
|
17767
17770
|
_a.sent();
|
|
@@ -17832,6 +17835,99 @@ var IkasCustomerStore = /** @class */ (function () {
|
|
|
17832
17835
|
}
|
|
17833
17836
|
catch (err) { }
|
|
17834
17837
|
};
|
|
17838
|
+
IkasCustomerStore.prototype.getLastViewedProducts = function () {
|
|
17839
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
17840
|
+
var _a;
|
|
17841
|
+
return __generator(this, function (_b) {
|
|
17842
|
+
switch (_b.label) {
|
|
17843
|
+
case 0:
|
|
17844
|
+
if (!this.customer) return [3 /*break*/, 2];
|
|
17845
|
+
_a = this;
|
|
17846
|
+
return [4 /*yield*/, IkasCustomerAPI.getLastViewedProducts(this.customer.id)];
|
|
17847
|
+
case 1:
|
|
17848
|
+
_a._lastViewedProducts = _b.sent();
|
|
17849
|
+
return [3 /*break*/, 3];
|
|
17850
|
+
case 2:
|
|
17851
|
+
this.loadLastViewedProducts();
|
|
17852
|
+
_b.label = 3;
|
|
17853
|
+
case 3: return [2 /*return*/, this._lastViewedProducts];
|
|
17854
|
+
}
|
|
17855
|
+
});
|
|
17856
|
+
});
|
|
17857
|
+
};
|
|
17858
|
+
IkasCustomerStore.prototype.saveLastViewedProducts = function () {
|
|
17859
|
+
window.localStorage.setItem(LS_LAST_VIEWED_PRODUCTS_KEY, JSON.stringify(this._lastViewedProducts));
|
|
17860
|
+
};
|
|
17861
|
+
IkasCustomerStore.prototype.loadLastViewedProducts = function () {
|
|
17862
|
+
try {
|
|
17863
|
+
var lvpStr = window.localStorage.getItem(LS_LAST_VIEWED_PRODUCTS_KEY);
|
|
17864
|
+
if (lvpStr)
|
|
17865
|
+
this._lastViewedProducts = JSON.parse(lvpStr);
|
|
17866
|
+
}
|
|
17867
|
+
catch (err) { }
|
|
17868
|
+
};
|
|
17869
|
+
IkasCustomerStore.prototype.removeLastViewedProducts = function () {
|
|
17870
|
+
window.localStorage.removeItem(LS_LAST_VIEWED_PRODUCTS_KEY);
|
|
17871
|
+
};
|
|
17872
|
+
IkasCustomerStore.prototype.onProductView = function (productId, variantId) {
|
|
17873
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
17874
|
+
var isSuccess;
|
|
17875
|
+
return __generator(this, function (_a) {
|
|
17876
|
+
switch (_a.label) {
|
|
17877
|
+
case 0:
|
|
17878
|
+
if (!this.customer) return [3 /*break*/, 2];
|
|
17879
|
+
return [4 /*yield*/, IkasCustomerAPI.saveLastViewedProducts({
|
|
17880
|
+
customerId: this.customer.id,
|
|
17881
|
+
products: [
|
|
17882
|
+
{
|
|
17883
|
+
productId: productId,
|
|
17884
|
+
variantId: variantId,
|
|
17885
|
+
},
|
|
17886
|
+
],
|
|
17887
|
+
})];
|
|
17888
|
+
case 1:
|
|
17889
|
+
isSuccess = _a.sent();
|
|
17890
|
+
if (isSuccess)
|
|
17891
|
+
this._lastViewedProducts.push({ productId: productId, variantId: variantId });
|
|
17892
|
+
return [3 /*break*/, 3];
|
|
17893
|
+
case 2:
|
|
17894
|
+
this._lastViewedProducts.push({ productId: productId, variantId: variantId });
|
|
17895
|
+
this._lastViewedProducts = this._lastViewedProducts.slice(0, 20);
|
|
17896
|
+
this.saveLastViewedProducts();
|
|
17897
|
+
_a.label = 3;
|
|
17898
|
+
case 3: return [2 /*return*/];
|
|
17899
|
+
}
|
|
17900
|
+
});
|
|
17901
|
+
});
|
|
17902
|
+
};
|
|
17903
|
+
IkasCustomerStore.prototype.saveLocalLastViewedProducts = function () {
|
|
17904
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
17905
|
+
var isSuccess;
|
|
17906
|
+
return __generator(this, function (_a) {
|
|
17907
|
+
switch (_a.label) {
|
|
17908
|
+
case 0:
|
|
17909
|
+
_a.trys.push([0, 3, , 4]);
|
|
17910
|
+
this.loadLastViewedProducts();
|
|
17911
|
+
if (!this._lastViewedProducts.length) return [3 /*break*/, 2];
|
|
17912
|
+
return [4 /*yield*/, IkasCustomerAPI.saveLastViewedProducts({
|
|
17913
|
+
customerId: this.customer.id,
|
|
17914
|
+
products: this._lastViewedProducts,
|
|
17915
|
+
})];
|
|
17916
|
+
case 1:
|
|
17917
|
+
isSuccess = _a.sent();
|
|
17918
|
+
if (isSuccess) {
|
|
17919
|
+
this.removeLastViewedProducts();
|
|
17920
|
+
}
|
|
17921
|
+
_a.label = 2;
|
|
17922
|
+
case 2: return [3 /*break*/, 4];
|
|
17923
|
+
case 3:
|
|
17924
|
+
_a.sent();
|
|
17925
|
+
return [3 /*break*/, 4];
|
|
17926
|
+
case 4: return [2 /*return*/];
|
|
17927
|
+
}
|
|
17928
|
+
});
|
|
17929
|
+
});
|
|
17930
|
+
};
|
|
17835
17931
|
IkasCustomerStore.prototype.setToken = function (token, tokenExpiry) {
|
|
17836
17932
|
if (isServer$3)
|
|
17837
17933
|
return;
|
|
@@ -20943,6 +21039,15 @@ var CustomerAccountStatusesEnum;
|
|
|
20943
21039
|
CustomerAccountStatusesEnum["DISABLED_ACCOUNT"] = "DISABLED_ACCOUNT";
|
|
20944
21040
|
CustomerAccountStatusesEnum["INVITED_TO_CREATE_ACCOUNT"] = "INVITED_TO_CREATE_ACCOUNT";
|
|
20945
21041
|
})(CustomerAccountStatusesEnum || (CustomerAccountStatusesEnum = {}));
|
|
21042
|
+
/**
|
|
21043
|
+
* Customer Email Subscription Statuses
|
|
21044
|
+
*/
|
|
21045
|
+
var CustomerEmailSubscriptionStatusesEnum;
|
|
21046
|
+
(function (CustomerEmailSubscriptionStatusesEnum) {
|
|
21047
|
+
CustomerEmailSubscriptionStatusesEnum["NOT_SUBSCRIBED"] = "NOT_SUBSCRIBED";
|
|
21048
|
+
CustomerEmailSubscriptionStatusesEnum["PENDING_CONFIRMATION"] = "PENDING_CONFIRMATION";
|
|
21049
|
+
CustomerEmailSubscriptionStatusesEnum["SUBSCRIBED"] = "SUBSCRIBED";
|
|
21050
|
+
})(CustomerEmailSubscriptionStatusesEnum || (CustomerEmailSubscriptionStatusesEnum = {}));
|
|
20946
21051
|
/**
|
|
20947
21052
|
* Url Slug Target Type Enum Codes
|
|
20948
21053
|
*/
|
|
@@ -21228,24 +21333,23 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21228
21333
|
});
|
|
21229
21334
|
}); };
|
|
21230
21335
|
this.getInitial = function (queryParams, isInfiteScrollReturn) { return __awaiter(_this, void 0, void 0, function () {
|
|
21231
|
-
var fetchRequestTime, page, limit, response_1, data, err_1;
|
|
21232
|
-
|
|
21233
|
-
|
|
21234
|
-
switch (_b.label) {
|
|
21336
|
+
var fetchRequestTime, page, limit, productIdList, lastViewedProducts, response_1, data, idList, err_1;
|
|
21337
|
+
return __generator(this, function (_a) {
|
|
21338
|
+
switch (_a.label) {
|
|
21235
21339
|
case 0:
|
|
21236
21340
|
this._isLoading = true;
|
|
21237
21341
|
fetchRequestTime = Date.now();
|
|
21238
21342
|
this._fetchRequestTime = fetchRequestTime;
|
|
21239
|
-
|
|
21343
|
+
_a.label = 1;
|
|
21240
21344
|
case 1:
|
|
21241
|
-
|
|
21345
|
+
_a.trys.push([1, 12, 13, 14]);
|
|
21242
21346
|
page = isInfiteScrollReturn ? this._page : 1;
|
|
21243
21347
|
limit = this._limit;
|
|
21244
21348
|
if (!(this.isFilterable && !this.filters)) return [3 /*break*/, 3];
|
|
21245
21349
|
return [4 /*yield*/, this.getFilters()];
|
|
21246
21350
|
case 2:
|
|
21247
|
-
|
|
21248
|
-
|
|
21351
|
+
_a.sent();
|
|
21352
|
+
_a.label = 3;
|
|
21249
21353
|
case 3:
|
|
21250
21354
|
this.applyQueryParamFilters(queryParams);
|
|
21251
21355
|
if (this.isSearch && !this.hasAppliedfilter) {
|
|
@@ -21256,27 +21360,48 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21256
21360
|
this._initialized = true;
|
|
21257
21361
|
return [2 /*return*/, true];
|
|
21258
21362
|
}
|
|
21259
|
-
|
|
21260
|
-
|
|
21261
|
-
|
|
21262
|
-
|
|
21263
|
-
|
|
21264
|
-
page = 1;
|
|
21265
|
-
limit = 10;
|
|
21266
|
-
}
|
|
21267
|
-
else if (this.isRecommended) {
|
|
21268
|
-
page = 1;
|
|
21269
|
-
limit = 10;
|
|
21270
|
-
}
|
|
21271
|
-
return [4 /*yield*/, this.searchProducts(page || 1, limit || 10)];
|
|
21363
|
+
productIdList = void 0;
|
|
21364
|
+
if (!this.isStatic) return [3 /*break*/, 4];
|
|
21365
|
+
page = undefined;
|
|
21366
|
+
limit = undefined;
|
|
21367
|
+
return [3 /*break*/, 10];
|
|
21272
21368
|
case 4:
|
|
21273
|
-
|
|
21369
|
+
if (!this.isDiscounted) return [3 /*break*/, 5];
|
|
21370
|
+
page = 1;
|
|
21371
|
+
limit = 10;
|
|
21372
|
+
return [3 /*break*/, 10];
|
|
21373
|
+
case 5:
|
|
21374
|
+
if (!this.isRecommended) return [3 /*break*/, 6];
|
|
21375
|
+
page = 1;
|
|
21376
|
+
limit = 10;
|
|
21377
|
+
return [3 /*break*/, 10];
|
|
21378
|
+
case 6:
|
|
21379
|
+
if (!this.isLastViewed) return [3 /*break*/, 10];
|
|
21380
|
+
if (!this.isBrowser()) return [3 /*break*/, 9];
|
|
21381
|
+
return [4 /*yield*/, this.waitForCustomerStoreInit()];
|
|
21382
|
+
case 7:
|
|
21383
|
+
_a.sent();
|
|
21384
|
+
return [4 /*yield*/, IkasStorefrontConfig.store.customerStore.getLastViewedProducts()];
|
|
21385
|
+
case 8:
|
|
21386
|
+
lastViewedProducts = _a.sent();
|
|
21387
|
+
if (lastViewedProducts && lastViewedProducts.length) {
|
|
21388
|
+
productIdList = lastViewedProducts.map(function (p) { return p.productId; });
|
|
21389
|
+
}
|
|
21390
|
+
return [3 /*break*/, 10];
|
|
21391
|
+
case 9: return [2 /*return*/];
|
|
21392
|
+
case 10: return [4 /*yield*/, this.searchProducts(page || 1, limit || 10, productIdList)];
|
|
21393
|
+
case 11:
|
|
21394
|
+
response_1 = _a.sent();
|
|
21274
21395
|
if (!response_1 || this._fetchRequestTime !== fetchRequestTime)
|
|
21275
21396
|
return [2 /*return*/];
|
|
21276
21397
|
data = [];
|
|
21277
|
-
if (this.isStatic) {
|
|
21398
|
+
if (this.isStatic || this.isLastViewed) {
|
|
21399
|
+
idList = this.isStatic
|
|
21400
|
+
? this._productListPropValue.productIds
|
|
21401
|
+
: //@ts-ignore
|
|
21402
|
+
IkasStorefrontConfig.store.customerStore._lastViewedProducts;
|
|
21278
21403
|
data =
|
|
21279
|
-
(
|
|
21404
|
+
(idList === null || idList === void 0 ? void 0 : idList.map(function (pID) {
|
|
21280
21405
|
var product = response_1.data.find(function (p) { return p.id === pID.productId; });
|
|
21281
21406
|
var variant = product === null || product === void 0 ? void 0 : product.variants.find(function (v) { return v.id === pID.variantId; });
|
|
21282
21407
|
if (product && variant)
|
|
@@ -21297,15 +21422,15 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21297
21422
|
if (!isInfiteScrollReturn)
|
|
21298
21423
|
this._infiniteScrollPage = null;
|
|
21299
21424
|
return [2 /*return*/, true];
|
|
21300
|
-
case
|
|
21301
|
-
err_1 =
|
|
21425
|
+
case 12:
|
|
21426
|
+
err_1 = _a.sent();
|
|
21302
21427
|
console.log(err_1);
|
|
21303
|
-
return [3 /*break*/,
|
|
21304
|
-
case
|
|
21428
|
+
return [3 /*break*/, 14];
|
|
21429
|
+
case 13:
|
|
21305
21430
|
if (fetchRequestTime === this._fetchRequestTime)
|
|
21306
21431
|
this._isLoading = false;
|
|
21307
21432
|
return [7 /*endfinally*/];
|
|
21308
|
-
case
|
|
21433
|
+
case 14: return [2 /*return*/];
|
|
21309
21434
|
}
|
|
21310
21435
|
});
|
|
21311
21436
|
}); };
|
|
@@ -21480,6 +21605,9 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21480
21605
|
else if (this._page > 1) {
|
|
21481
21606
|
this.getInitial(undefined, true);
|
|
21482
21607
|
}
|
|
21608
|
+
else if (this.isLastViewed) {
|
|
21609
|
+
this.getInitial();
|
|
21610
|
+
}
|
|
21483
21611
|
}
|
|
21484
21612
|
}
|
|
21485
21613
|
Object.defineProperty(IkasProductList.prototype, "id", {
|
|
@@ -21604,6 +21732,13 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21604
21732
|
enumerable: false,
|
|
21605
21733
|
configurable: true
|
|
21606
21734
|
});
|
|
21735
|
+
Object.defineProperty(IkasProductList.prototype, "isLastViewed", {
|
|
21736
|
+
get: function () {
|
|
21737
|
+
return this._type === IkasProductListType.LAST_VIEWED;
|
|
21738
|
+
},
|
|
21739
|
+
enumerable: false,
|
|
21740
|
+
configurable: true
|
|
21741
|
+
});
|
|
21607
21742
|
Object.defineProperty(IkasProductList.prototype, "isSearch", {
|
|
21608
21743
|
get: function () {
|
|
21609
21744
|
return this._type === IkasProductListType.SEARCH;
|
|
@@ -21721,7 +21856,7 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21721
21856
|
type: type,
|
|
21722
21857
|
};
|
|
21723
21858
|
};
|
|
21724
|
-
IkasProductList.prototype.searchProducts = function (page, limit) {
|
|
21859
|
+
IkasProductList.prototype.searchProducts = function (page, limit, productIdList) {
|
|
21725
21860
|
var _a, _b;
|
|
21726
21861
|
return __awaiter(this, void 0, void 0, function () {
|
|
21727
21862
|
var filterList;
|
|
@@ -21749,7 +21884,7 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21749
21884
|
page: page,
|
|
21750
21885
|
perPage: limit,
|
|
21751
21886
|
productIdList: this.isStatic
|
|
21752
|
-
? (_b = this._productListPropValue.productIds) === null || _b === void 0 ? void 0 : _b.map(function (p) { return p.productId; }) :
|
|
21887
|
+
? (_b = this._productListPropValue.productIds) === null || _b === void 0 ? void 0 : _b.map(function (p) { return p.productId; }) : productIdList,
|
|
21753
21888
|
filterList: filterList,
|
|
21754
21889
|
brandId: this._pageType === IkasThemePageType.BRAND &&
|
|
21755
21890
|
this._type !== IkasProductListType.SEARCH
|
|
@@ -21935,6 +22070,16 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21935
22070
|
IkasProductList.prototype.isBrowser = function () {
|
|
21936
22071
|
return typeof window !== "undefined";
|
|
21937
22072
|
};
|
|
22073
|
+
IkasProductList.prototype.waitForCustomerStoreInit = function () {
|
|
22074
|
+
return new Promise(function (resolve) {
|
|
22075
|
+
var interval = setInterval(function () {
|
|
22076
|
+
if (IkasStorefrontConfig.store.customerStore.initialized) {
|
|
22077
|
+
clearInterval(interval);
|
|
22078
|
+
resolve(null);
|
|
22079
|
+
}
|
|
22080
|
+
}, 1000);
|
|
22081
|
+
});
|
|
22082
|
+
};
|
|
21938
22083
|
return IkasProductList;
|
|
21939
22084
|
}());
|
|
21940
22085
|
var IkasProductListType;
|
|
@@ -21945,6 +22090,7 @@ var IkasProductListType;
|
|
|
21945
22090
|
IkasProductListType["RECOMMENDED"] = "RECOMMENDED";
|
|
21946
22091
|
IkasProductListType["CATEGORY"] = "CATEGORY";
|
|
21947
22092
|
IkasProductListType["SEARCH"] = "SEARCH";
|
|
22093
|
+
IkasProductListType["LAST_VIEWED"] = "LAST_VIEWED";
|
|
21948
22094
|
})(IkasProductListType || (IkasProductListType = {}));
|
|
21949
22095
|
var IkasProductListSortType;
|
|
21950
22096
|
(function (IkasProductListSortType) {
|
|
@@ -27701,9 +27847,73 @@ var IkasCustomerAPI = /** @class */ (function () {
|
|
|
27701
27847
|
});
|
|
27702
27848
|
});
|
|
27703
27849
|
};
|
|
27850
|
+
IkasCustomerAPI.getLastViewedProducts = function (customerId) {
|
|
27851
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
27852
|
+
var QUERY, _a, data, errors, error_2;
|
|
27853
|
+
return __generator(this, function (_b) {
|
|
27854
|
+
switch (_b.label) {
|
|
27855
|
+
case 0:
|
|
27856
|
+
QUERY = src(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n query getLastViewedProducts($customerId: String) {\n getLastViewedProducts(customerId: $customerId) {\n products {\n productId\n variantId\n }\n }\n }\n "], ["\n query getLastViewedProducts($customerId: String) {\n getLastViewedProducts(customerId: $customerId) {\n products {\n productId\n variantId\n }\n }\n }\n "])));
|
|
27857
|
+
_b.label = 1;
|
|
27858
|
+
case 1:
|
|
27859
|
+
_b.trys.push([1, 3, , 4]);
|
|
27860
|
+
return [4 /*yield*/, apollo
|
|
27861
|
+
.getClient()
|
|
27862
|
+
.query({
|
|
27863
|
+
query: QUERY,
|
|
27864
|
+
variables: {
|
|
27865
|
+
customerId: customerId,
|
|
27866
|
+
},
|
|
27867
|
+
})];
|
|
27868
|
+
case 2:
|
|
27869
|
+
_a = _b.sent(), data = _a.data, errors = _a.errors;
|
|
27870
|
+
if (errors && errors.length)
|
|
27871
|
+
return [2 /*return*/, []];
|
|
27872
|
+
return [2 /*return*/, data.getLastViewedProducts.products];
|
|
27873
|
+
case 3:
|
|
27874
|
+
error_2 = _b.sent();
|
|
27875
|
+
console.log(error_2);
|
|
27876
|
+
return [2 /*return*/, []];
|
|
27877
|
+
case 4: return [2 /*return*/];
|
|
27878
|
+
}
|
|
27879
|
+
});
|
|
27880
|
+
});
|
|
27881
|
+
};
|
|
27882
|
+
IkasCustomerAPI.saveLastViewedProducts = function (input) {
|
|
27883
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
27884
|
+
var MUTATION, errors, err_12;
|
|
27885
|
+
return __generator(this, function (_a) {
|
|
27886
|
+
switch (_a.label) {
|
|
27887
|
+
case 0:
|
|
27888
|
+
MUTATION = src(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n mutation saveLastViewedProducts($input: ProductLastViewedInput!) {\n saveLastViewedProducts(input: $input) {\n id\n }\n }\n "], ["\n mutation saveLastViewedProducts($input: ProductLastViewedInput!) {\n saveLastViewedProducts(input: $input) {\n id\n }\n }\n "])));
|
|
27889
|
+
_a.label = 1;
|
|
27890
|
+
case 1:
|
|
27891
|
+
_a.trys.push([1, 3, , 4]);
|
|
27892
|
+
return [4 /*yield*/, apollo
|
|
27893
|
+
.getClient()
|
|
27894
|
+
.mutate({
|
|
27895
|
+
mutation: MUTATION,
|
|
27896
|
+
variables: {
|
|
27897
|
+
input: input,
|
|
27898
|
+
},
|
|
27899
|
+
})];
|
|
27900
|
+
case 2:
|
|
27901
|
+
errors = (_a.sent()).errors;
|
|
27902
|
+
if (errors && errors.length)
|
|
27903
|
+
return [2 /*return*/, false];
|
|
27904
|
+
return [3 /*break*/, 4];
|
|
27905
|
+
case 3:
|
|
27906
|
+
err_12 = _a.sent();
|
|
27907
|
+
console.log(err_12);
|
|
27908
|
+
return [2 /*return*/, false];
|
|
27909
|
+
case 4: return [2 /*return*/, true];
|
|
27910
|
+
}
|
|
27911
|
+
});
|
|
27912
|
+
});
|
|
27913
|
+
};
|
|
27704
27914
|
return IkasCustomerAPI;
|
|
27705
27915
|
}());
|
|
27706
|
-
var templateObject_1$7, templateObject_2$5, templateObject_3$3, templateObject_4$2, templateObject_5$1, templateObject_6$1, templateObject_7$1, templateObject_8$1, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
|
|
27916
|
+
var templateObject_1$7, templateObject_2$5, templateObject_3$3, templateObject_4$2, templateObject_5$1, templateObject_6$1, templateObject_7$1, templateObject_8$1, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14;
|
|
27707
27917
|
|
|
27708
27918
|
var IkasDistrictAPI = /** @class */ (function () {
|
|
27709
27919
|
function IkasDistrictAPI() {
|
|
@@ -30018,7 +30228,7 @@ var style = {
|
|
|
30018
30228
|
backgroundColor: "rgba(255, 0, 0, 0.5)",
|
|
30019
30229
|
};
|
|
30020
30230
|
|
|
30021
|
-
var PACKAGE_VERSION = "0.0.
|
|
30231
|
+
var PACKAGE_VERSION = "0.0.158";
|
|
30022
30232
|
var PageViewModel = /** @class */ (function () {
|
|
30023
30233
|
function PageViewModel(router) {
|
|
30024
30234
|
var _this = this;
|
|
@@ -30970,6 +31180,8 @@ function handleAnalytics(page, pageSpecificDataStr) {
|
|
|
30970
31180
|
var productDetailParsed = JSON.parse(pageSpecificDataStr);
|
|
30971
31181
|
var productDetail = new IkasProductDetail(productDetailParsed.product, productDetailParsed.selectedVariantValues);
|
|
30972
31182
|
Analytics.productView(productDetail);
|
|
31183
|
+
// @ts-ignore
|
|
31184
|
+
IkasStorefrontConfig.store.customerStore.onProductView(productDetail.product.id, productDetail.selectedVariant.id);
|
|
30973
31185
|
}
|
|
30974
31186
|
if (page.type === IkasThemePageType.CATEGORY) {
|
|
30975
31187
|
var category = JSON.parse(pageSpecificDataStr);
|
package/build/index.js
CHANGED
|
@@ -11185,7 +11185,7 @@ var IkasOrderAddress = /** @class */ (function () {
|
|
|
11185
11185
|
});
|
|
11186
11186
|
Object.defineProperty(IkasOrderAddress.prototype, "validationResult", {
|
|
11187
11187
|
get: function () {
|
|
11188
|
-
var _a, _b, _c, _d
|
|
11188
|
+
var _a, _b, _c, _d;
|
|
11189
11189
|
var isValidPhone = !!this.phone &&
|
|
11190
11190
|
this.phone.length >= 10 &&
|
|
11191
11191
|
validatePhoneNumber(this.phone);
|
|
@@ -11206,10 +11206,7 @@ var IkasOrderAddress = /** @class */ (function () {
|
|
|
11206
11206
|
? isValidPhone
|
|
11207
11207
|
: true,
|
|
11208
11208
|
identityNumber: ((_d = this.checkoutSettings) === null || _d === void 0 ? void 0 : _d.identityNumberRequirement) ===
|
|
11209
|
-
IkasCheckoutRequirementEnum.MANDATORY
|
|
11210
|
-
(((_e = this.checkoutSettings) === null || _e === void 0 ? void 0 : _e.identityNumberRequirement) ===
|
|
11211
|
-
IkasCheckoutRequirementEnum.OPTIONAL &&
|
|
11212
|
-
this.phone)
|
|
11209
|
+
IkasCheckoutRequirementEnum.MANDATORY
|
|
11213
11210
|
? !!this.identityNumber
|
|
11214
11211
|
: true,
|
|
11215
11212
|
};
|
|
@@ -17481,6 +17478,7 @@ var LS_TOKEN_KEY = "customerToken";
|
|
|
17481
17478
|
var LS_TOKEN_EXPIRY = "customerTokenExpiry";
|
|
17482
17479
|
var LS_CUSTOMER_KEY = "customer";
|
|
17483
17480
|
var LS_CUSTOMER_SUB_KEY = "customerEmailSubscription";
|
|
17481
|
+
var LS_LAST_VIEWED_PRODUCTS_KEY = "lastViewedProducts";
|
|
17484
17482
|
var IkasCustomerStore = /** @class */ (function () {
|
|
17485
17483
|
function IkasCustomerStore(baseStore) {
|
|
17486
17484
|
var _this = this;
|
|
@@ -17490,6 +17488,7 @@ var IkasCustomerStore = /** @class */ (function () {
|
|
|
17490
17488
|
this.baseStore = null;
|
|
17491
17489
|
this._initialized = false;
|
|
17492
17490
|
this._visitorSubscribedEmail = false;
|
|
17491
|
+
this._lastViewedProducts = [];
|
|
17493
17492
|
this.login = function (email, password) { return __awaiter(_this, void 0, void 0, function () {
|
|
17494
17493
|
var response, cart;
|
|
17495
17494
|
var _a;
|
|
@@ -17509,7 +17508,9 @@ var IkasCustomerStore = /** @class */ (function () {
|
|
|
17509
17508
|
case 2:
|
|
17510
17509
|
_b.sent();
|
|
17511
17510
|
_b.label = 3;
|
|
17512
|
-
case 3:
|
|
17511
|
+
case 3:
|
|
17512
|
+
this.saveLocalLastViewedProducts();
|
|
17513
|
+
return [2 /*return*/, true];
|
|
17513
17514
|
case 4: return [2 /*return*/, false];
|
|
17514
17515
|
}
|
|
17515
17516
|
});
|
|
@@ -17524,6 +17525,7 @@ var IkasCustomerStore = /** @class */ (function () {
|
|
|
17524
17525
|
if (response) {
|
|
17525
17526
|
this.setToken(response.token, response.tokenExpiry);
|
|
17526
17527
|
this.setCustomer(response.customer);
|
|
17528
|
+
this.saveLocalLastViewedProducts();
|
|
17527
17529
|
return [2 /*return*/, true];
|
|
17528
17530
|
}
|
|
17529
17531
|
return [2 /*return*/, false];
|
|
@@ -17768,6 +17770,7 @@ var IkasCustomerStore = /** @class */ (function () {
|
|
|
17768
17770
|
case 0:
|
|
17769
17771
|
this.loadToken();
|
|
17770
17772
|
this.loadCustomer();
|
|
17773
|
+
this.loadLastViewedProducts();
|
|
17771
17774
|
return [4 /*yield*/, this.refreshToken()];
|
|
17772
17775
|
case 1:
|
|
17773
17776
|
_a.sent();
|
|
@@ -17838,6 +17841,99 @@ var IkasCustomerStore = /** @class */ (function () {
|
|
|
17838
17841
|
}
|
|
17839
17842
|
catch (err) { }
|
|
17840
17843
|
};
|
|
17844
|
+
IkasCustomerStore.prototype.getLastViewedProducts = function () {
|
|
17845
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
17846
|
+
var _a;
|
|
17847
|
+
return __generator(this, function (_b) {
|
|
17848
|
+
switch (_b.label) {
|
|
17849
|
+
case 0:
|
|
17850
|
+
if (!this.customer) return [3 /*break*/, 2];
|
|
17851
|
+
_a = this;
|
|
17852
|
+
return [4 /*yield*/, IkasCustomerAPI.getLastViewedProducts(this.customer.id)];
|
|
17853
|
+
case 1:
|
|
17854
|
+
_a._lastViewedProducts = _b.sent();
|
|
17855
|
+
return [3 /*break*/, 3];
|
|
17856
|
+
case 2:
|
|
17857
|
+
this.loadLastViewedProducts();
|
|
17858
|
+
_b.label = 3;
|
|
17859
|
+
case 3: return [2 /*return*/, this._lastViewedProducts];
|
|
17860
|
+
}
|
|
17861
|
+
});
|
|
17862
|
+
});
|
|
17863
|
+
};
|
|
17864
|
+
IkasCustomerStore.prototype.saveLastViewedProducts = function () {
|
|
17865
|
+
window.localStorage.setItem(LS_LAST_VIEWED_PRODUCTS_KEY, JSON.stringify(this._lastViewedProducts));
|
|
17866
|
+
};
|
|
17867
|
+
IkasCustomerStore.prototype.loadLastViewedProducts = function () {
|
|
17868
|
+
try {
|
|
17869
|
+
var lvpStr = window.localStorage.getItem(LS_LAST_VIEWED_PRODUCTS_KEY);
|
|
17870
|
+
if (lvpStr)
|
|
17871
|
+
this._lastViewedProducts = JSON.parse(lvpStr);
|
|
17872
|
+
}
|
|
17873
|
+
catch (err) { }
|
|
17874
|
+
};
|
|
17875
|
+
IkasCustomerStore.prototype.removeLastViewedProducts = function () {
|
|
17876
|
+
window.localStorage.removeItem(LS_LAST_VIEWED_PRODUCTS_KEY);
|
|
17877
|
+
};
|
|
17878
|
+
IkasCustomerStore.prototype.onProductView = function (productId, variantId) {
|
|
17879
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
17880
|
+
var isSuccess;
|
|
17881
|
+
return __generator(this, function (_a) {
|
|
17882
|
+
switch (_a.label) {
|
|
17883
|
+
case 0:
|
|
17884
|
+
if (!this.customer) return [3 /*break*/, 2];
|
|
17885
|
+
return [4 /*yield*/, IkasCustomerAPI.saveLastViewedProducts({
|
|
17886
|
+
customerId: this.customer.id,
|
|
17887
|
+
products: [
|
|
17888
|
+
{
|
|
17889
|
+
productId: productId,
|
|
17890
|
+
variantId: variantId,
|
|
17891
|
+
},
|
|
17892
|
+
],
|
|
17893
|
+
})];
|
|
17894
|
+
case 1:
|
|
17895
|
+
isSuccess = _a.sent();
|
|
17896
|
+
if (isSuccess)
|
|
17897
|
+
this._lastViewedProducts.push({ productId: productId, variantId: variantId });
|
|
17898
|
+
return [3 /*break*/, 3];
|
|
17899
|
+
case 2:
|
|
17900
|
+
this._lastViewedProducts.push({ productId: productId, variantId: variantId });
|
|
17901
|
+
this._lastViewedProducts = this._lastViewedProducts.slice(0, 20);
|
|
17902
|
+
this.saveLastViewedProducts();
|
|
17903
|
+
_a.label = 3;
|
|
17904
|
+
case 3: return [2 /*return*/];
|
|
17905
|
+
}
|
|
17906
|
+
});
|
|
17907
|
+
});
|
|
17908
|
+
};
|
|
17909
|
+
IkasCustomerStore.prototype.saveLocalLastViewedProducts = function () {
|
|
17910
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
17911
|
+
var isSuccess;
|
|
17912
|
+
return __generator(this, function (_a) {
|
|
17913
|
+
switch (_a.label) {
|
|
17914
|
+
case 0:
|
|
17915
|
+
_a.trys.push([0, 3, , 4]);
|
|
17916
|
+
this.loadLastViewedProducts();
|
|
17917
|
+
if (!this._lastViewedProducts.length) return [3 /*break*/, 2];
|
|
17918
|
+
return [4 /*yield*/, IkasCustomerAPI.saveLastViewedProducts({
|
|
17919
|
+
customerId: this.customer.id,
|
|
17920
|
+
products: this._lastViewedProducts,
|
|
17921
|
+
})];
|
|
17922
|
+
case 1:
|
|
17923
|
+
isSuccess = _a.sent();
|
|
17924
|
+
if (isSuccess) {
|
|
17925
|
+
this.removeLastViewedProducts();
|
|
17926
|
+
}
|
|
17927
|
+
_a.label = 2;
|
|
17928
|
+
case 2: return [3 /*break*/, 4];
|
|
17929
|
+
case 3:
|
|
17930
|
+
_a.sent();
|
|
17931
|
+
return [3 /*break*/, 4];
|
|
17932
|
+
case 4: return [2 /*return*/];
|
|
17933
|
+
}
|
|
17934
|
+
});
|
|
17935
|
+
});
|
|
17936
|
+
};
|
|
17841
17937
|
IkasCustomerStore.prototype.setToken = function (token, tokenExpiry) {
|
|
17842
17938
|
if (isServer$3)
|
|
17843
17939
|
return;
|
|
@@ -20926,6 +21022,15 @@ var CustomerAccountStatusesEnum;
|
|
|
20926
21022
|
CustomerAccountStatusesEnum["DISABLED_ACCOUNT"] = "DISABLED_ACCOUNT";
|
|
20927
21023
|
CustomerAccountStatusesEnum["INVITED_TO_CREATE_ACCOUNT"] = "INVITED_TO_CREATE_ACCOUNT";
|
|
20928
21024
|
})(CustomerAccountStatusesEnum || (CustomerAccountStatusesEnum = {}));
|
|
21025
|
+
/**
|
|
21026
|
+
* Customer Email Subscription Statuses
|
|
21027
|
+
*/
|
|
21028
|
+
var CustomerEmailSubscriptionStatusesEnum;
|
|
21029
|
+
(function (CustomerEmailSubscriptionStatusesEnum) {
|
|
21030
|
+
CustomerEmailSubscriptionStatusesEnum["NOT_SUBSCRIBED"] = "NOT_SUBSCRIBED";
|
|
21031
|
+
CustomerEmailSubscriptionStatusesEnum["PENDING_CONFIRMATION"] = "PENDING_CONFIRMATION";
|
|
21032
|
+
CustomerEmailSubscriptionStatusesEnum["SUBSCRIBED"] = "SUBSCRIBED";
|
|
21033
|
+
})(CustomerEmailSubscriptionStatusesEnum || (CustomerEmailSubscriptionStatusesEnum = {}));
|
|
20929
21034
|
/**
|
|
20930
21035
|
* Url Slug Target Type Enum Codes
|
|
20931
21036
|
*/
|
|
@@ -21211,24 +21316,23 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21211
21316
|
});
|
|
21212
21317
|
}); };
|
|
21213
21318
|
this.getInitial = function (queryParams, isInfiteScrollReturn) { return __awaiter(_this, void 0, void 0, function () {
|
|
21214
|
-
var fetchRequestTime, page, limit, response_1, data, err_1;
|
|
21215
|
-
|
|
21216
|
-
|
|
21217
|
-
switch (_b.label) {
|
|
21319
|
+
var fetchRequestTime, page, limit, productIdList, lastViewedProducts, response_1, data, idList, err_1;
|
|
21320
|
+
return __generator(this, function (_a) {
|
|
21321
|
+
switch (_a.label) {
|
|
21218
21322
|
case 0:
|
|
21219
21323
|
this._isLoading = true;
|
|
21220
21324
|
fetchRequestTime = Date.now();
|
|
21221
21325
|
this._fetchRequestTime = fetchRequestTime;
|
|
21222
|
-
|
|
21326
|
+
_a.label = 1;
|
|
21223
21327
|
case 1:
|
|
21224
|
-
|
|
21328
|
+
_a.trys.push([1, 12, 13, 14]);
|
|
21225
21329
|
page = isInfiteScrollReturn ? this._page : 1;
|
|
21226
21330
|
limit = this._limit;
|
|
21227
21331
|
if (!(this.isFilterable && !this.filters)) return [3 /*break*/, 3];
|
|
21228
21332
|
return [4 /*yield*/, this.getFilters()];
|
|
21229
21333
|
case 2:
|
|
21230
|
-
|
|
21231
|
-
|
|
21334
|
+
_a.sent();
|
|
21335
|
+
_a.label = 3;
|
|
21232
21336
|
case 3:
|
|
21233
21337
|
this.applyQueryParamFilters(queryParams);
|
|
21234
21338
|
if (this.isSearch && !this.hasAppliedfilter) {
|
|
@@ -21239,27 +21343,48 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21239
21343
|
this._initialized = true;
|
|
21240
21344
|
return [2 /*return*/, true];
|
|
21241
21345
|
}
|
|
21242
|
-
|
|
21243
|
-
|
|
21244
|
-
|
|
21245
|
-
|
|
21246
|
-
|
|
21247
|
-
page = 1;
|
|
21248
|
-
limit = 10;
|
|
21249
|
-
}
|
|
21250
|
-
else if (this.isRecommended) {
|
|
21251
|
-
page = 1;
|
|
21252
|
-
limit = 10;
|
|
21253
|
-
}
|
|
21254
|
-
return [4 /*yield*/, this.searchProducts(page || 1, limit || 10)];
|
|
21346
|
+
productIdList = void 0;
|
|
21347
|
+
if (!this.isStatic) return [3 /*break*/, 4];
|
|
21348
|
+
page = undefined;
|
|
21349
|
+
limit = undefined;
|
|
21350
|
+
return [3 /*break*/, 10];
|
|
21255
21351
|
case 4:
|
|
21256
|
-
|
|
21352
|
+
if (!this.isDiscounted) return [3 /*break*/, 5];
|
|
21353
|
+
page = 1;
|
|
21354
|
+
limit = 10;
|
|
21355
|
+
return [3 /*break*/, 10];
|
|
21356
|
+
case 5:
|
|
21357
|
+
if (!this.isRecommended) return [3 /*break*/, 6];
|
|
21358
|
+
page = 1;
|
|
21359
|
+
limit = 10;
|
|
21360
|
+
return [3 /*break*/, 10];
|
|
21361
|
+
case 6:
|
|
21362
|
+
if (!this.isLastViewed) return [3 /*break*/, 10];
|
|
21363
|
+
if (!this.isBrowser()) return [3 /*break*/, 9];
|
|
21364
|
+
return [4 /*yield*/, this.waitForCustomerStoreInit()];
|
|
21365
|
+
case 7:
|
|
21366
|
+
_a.sent();
|
|
21367
|
+
return [4 /*yield*/, IkasStorefrontConfig.store.customerStore.getLastViewedProducts()];
|
|
21368
|
+
case 8:
|
|
21369
|
+
lastViewedProducts = _a.sent();
|
|
21370
|
+
if (lastViewedProducts && lastViewedProducts.length) {
|
|
21371
|
+
productIdList = lastViewedProducts.map(function (p) { return p.productId; });
|
|
21372
|
+
}
|
|
21373
|
+
return [3 /*break*/, 10];
|
|
21374
|
+
case 9: return [2 /*return*/];
|
|
21375
|
+
case 10: return [4 /*yield*/, this.searchProducts(page || 1, limit || 10, productIdList)];
|
|
21376
|
+
case 11:
|
|
21377
|
+
response_1 = _a.sent();
|
|
21257
21378
|
if (!response_1 || this._fetchRequestTime !== fetchRequestTime)
|
|
21258
21379
|
return [2 /*return*/];
|
|
21259
21380
|
data = [];
|
|
21260
|
-
if (this.isStatic) {
|
|
21381
|
+
if (this.isStatic || this.isLastViewed) {
|
|
21382
|
+
idList = this.isStatic
|
|
21383
|
+
? this._productListPropValue.productIds
|
|
21384
|
+
: //@ts-ignore
|
|
21385
|
+
IkasStorefrontConfig.store.customerStore._lastViewedProducts;
|
|
21261
21386
|
data =
|
|
21262
|
-
(
|
|
21387
|
+
(idList === null || idList === void 0 ? void 0 : idList.map(function (pID) {
|
|
21263
21388
|
var product = response_1.data.find(function (p) { return p.id === pID.productId; });
|
|
21264
21389
|
var variant = product === null || product === void 0 ? void 0 : product.variants.find(function (v) { return v.id === pID.variantId; });
|
|
21265
21390
|
if (product && variant)
|
|
@@ -21280,15 +21405,15 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21280
21405
|
if (!isInfiteScrollReturn)
|
|
21281
21406
|
this._infiniteScrollPage = null;
|
|
21282
21407
|
return [2 /*return*/, true];
|
|
21283
|
-
case
|
|
21284
|
-
err_1 =
|
|
21408
|
+
case 12:
|
|
21409
|
+
err_1 = _a.sent();
|
|
21285
21410
|
console.log(err_1);
|
|
21286
|
-
return [3 /*break*/,
|
|
21287
|
-
case
|
|
21411
|
+
return [3 /*break*/, 14];
|
|
21412
|
+
case 13:
|
|
21288
21413
|
if (fetchRequestTime === this._fetchRequestTime)
|
|
21289
21414
|
this._isLoading = false;
|
|
21290
21415
|
return [7 /*endfinally*/];
|
|
21291
|
-
case
|
|
21416
|
+
case 14: return [2 /*return*/];
|
|
21292
21417
|
}
|
|
21293
21418
|
});
|
|
21294
21419
|
}); };
|
|
@@ -21463,6 +21588,9 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21463
21588
|
else if (this._page > 1) {
|
|
21464
21589
|
this.getInitial(undefined, true);
|
|
21465
21590
|
}
|
|
21591
|
+
else if (this.isLastViewed) {
|
|
21592
|
+
this.getInitial();
|
|
21593
|
+
}
|
|
21466
21594
|
}
|
|
21467
21595
|
}
|
|
21468
21596
|
Object.defineProperty(IkasProductList.prototype, "id", {
|
|
@@ -21587,6 +21715,13 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21587
21715
|
enumerable: false,
|
|
21588
21716
|
configurable: true
|
|
21589
21717
|
});
|
|
21718
|
+
Object.defineProperty(IkasProductList.prototype, "isLastViewed", {
|
|
21719
|
+
get: function () {
|
|
21720
|
+
return this._type === exports.IkasProductListType.LAST_VIEWED;
|
|
21721
|
+
},
|
|
21722
|
+
enumerable: false,
|
|
21723
|
+
configurable: true
|
|
21724
|
+
});
|
|
21590
21725
|
Object.defineProperty(IkasProductList.prototype, "isSearch", {
|
|
21591
21726
|
get: function () {
|
|
21592
21727
|
return this._type === exports.IkasProductListType.SEARCH;
|
|
@@ -21704,7 +21839,7 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21704
21839
|
type: type,
|
|
21705
21840
|
};
|
|
21706
21841
|
};
|
|
21707
|
-
IkasProductList.prototype.searchProducts = function (page, limit) {
|
|
21842
|
+
IkasProductList.prototype.searchProducts = function (page, limit, productIdList) {
|
|
21708
21843
|
var _a, _b;
|
|
21709
21844
|
return __awaiter(this, void 0, void 0, function () {
|
|
21710
21845
|
var filterList;
|
|
@@ -21732,7 +21867,7 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21732
21867
|
page: page,
|
|
21733
21868
|
perPage: limit,
|
|
21734
21869
|
productIdList: this.isStatic
|
|
21735
|
-
? (_b = this._productListPropValue.productIds) === null || _b === void 0 ? void 0 : _b.map(function (p) { return p.productId; }) :
|
|
21870
|
+
? (_b = this._productListPropValue.productIds) === null || _b === void 0 ? void 0 : _b.map(function (p) { return p.productId; }) : productIdList,
|
|
21736
21871
|
filterList: filterList,
|
|
21737
21872
|
brandId: this._pageType === exports.IkasThemePageType.BRAND &&
|
|
21738
21873
|
this._type !== exports.IkasProductListType.SEARCH
|
|
@@ -21918,6 +22053,16 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21918
22053
|
IkasProductList.prototype.isBrowser = function () {
|
|
21919
22054
|
return typeof window !== "undefined";
|
|
21920
22055
|
};
|
|
22056
|
+
IkasProductList.prototype.waitForCustomerStoreInit = function () {
|
|
22057
|
+
return new Promise(function (resolve) {
|
|
22058
|
+
var interval = setInterval(function () {
|
|
22059
|
+
if (IkasStorefrontConfig.store.customerStore.initialized) {
|
|
22060
|
+
clearInterval(interval);
|
|
22061
|
+
resolve(null);
|
|
22062
|
+
}
|
|
22063
|
+
}, 1000);
|
|
22064
|
+
});
|
|
22065
|
+
};
|
|
21921
22066
|
return IkasProductList;
|
|
21922
22067
|
}());
|
|
21923
22068
|
(function (IkasProductListType) {
|
|
@@ -21927,6 +22072,7 @@ var IkasProductList = /** @class */ (function () {
|
|
|
21927
22072
|
IkasProductListType["RECOMMENDED"] = "RECOMMENDED";
|
|
21928
22073
|
IkasProductListType["CATEGORY"] = "CATEGORY";
|
|
21929
22074
|
IkasProductListType["SEARCH"] = "SEARCH";
|
|
22075
|
+
IkasProductListType["LAST_VIEWED"] = "LAST_VIEWED";
|
|
21930
22076
|
})(exports.IkasProductListType || (exports.IkasProductListType = {}));
|
|
21931
22077
|
(function (IkasProductListSortType) {
|
|
21932
22078
|
// A_Z = "A_Z",
|
|
@@ -27680,9 +27826,73 @@ var IkasCustomerAPI = /** @class */ (function () {
|
|
|
27680
27826
|
});
|
|
27681
27827
|
});
|
|
27682
27828
|
};
|
|
27829
|
+
IkasCustomerAPI.getLastViewedProducts = function (customerId) {
|
|
27830
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
27831
|
+
var QUERY, _a, data, errors, error_2;
|
|
27832
|
+
return __generator(this, function (_b) {
|
|
27833
|
+
switch (_b.label) {
|
|
27834
|
+
case 0:
|
|
27835
|
+
QUERY = src(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n query getLastViewedProducts($customerId: String) {\n getLastViewedProducts(customerId: $customerId) {\n products {\n productId\n variantId\n }\n }\n }\n "], ["\n query getLastViewedProducts($customerId: String) {\n getLastViewedProducts(customerId: $customerId) {\n products {\n productId\n variantId\n }\n }\n }\n "])));
|
|
27836
|
+
_b.label = 1;
|
|
27837
|
+
case 1:
|
|
27838
|
+
_b.trys.push([1, 3, , 4]);
|
|
27839
|
+
return [4 /*yield*/, apollo
|
|
27840
|
+
.getClient()
|
|
27841
|
+
.query({
|
|
27842
|
+
query: QUERY,
|
|
27843
|
+
variables: {
|
|
27844
|
+
customerId: customerId,
|
|
27845
|
+
},
|
|
27846
|
+
})];
|
|
27847
|
+
case 2:
|
|
27848
|
+
_a = _b.sent(), data = _a.data, errors = _a.errors;
|
|
27849
|
+
if (errors && errors.length)
|
|
27850
|
+
return [2 /*return*/, []];
|
|
27851
|
+
return [2 /*return*/, data.getLastViewedProducts.products];
|
|
27852
|
+
case 3:
|
|
27853
|
+
error_2 = _b.sent();
|
|
27854
|
+
console.log(error_2);
|
|
27855
|
+
return [2 /*return*/, []];
|
|
27856
|
+
case 4: return [2 /*return*/];
|
|
27857
|
+
}
|
|
27858
|
+
});
|
|
27859
|
+
});
|
|
27860
|
+
};
|
|
27861
|
+
IkasCustomerAPI.saveLastViewedProducts = function (input) {
|
|
27862
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
27863
|
+
var MUTATION, errors, err_12;
|
|
27864
|
+
return __generator(this, function (_a) {
|
|
27865
|
+
switch (_a.label) {
|
|
27866
|
+
case 0:
|
|
27867
|
+
MUTATION = src(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n mutation saveLastViewedProducts($input: ProductLastViewedInput!) {\n saveLastViewedProducts(input: $input) {\n id\n }\n }\n "], ["\n mutation saveLastViewedProducts($input: ProductLastViewedInput!) {\n saveLastViewedProducts(input: $input) {\n id\n }\n }\n "])));
|
|
27868
|
+
_a.label = 1;
|
|
27869
|
+
case 1:
|
|
27870
|
+
_a.trys.push([1, 3, , 4]);
|
|
27871
|
+
return [4 /*yield*/, apollo
|
|
27872
|
+
.getClient()
|
|
27873
|
+
.mutate({
|
|
27874
|
+
mutation: MUTATION,
|
|
27875
|
+
variables: {
|
|
27876
|
+
input: input,
|
|
27877
|
+
},
|
|
27878
|
+
})];
|
|
27879
|
+
case 2:
|
|
27880
|
+
errors = (_a.sent()).errors;
|
|
27881
|
+
if (errors && errors.length)
|
|
27882
|
+
return [2 /*return*/, false];
|
|
27883
|
+
return [3 /*break*/, 4];
|
|
27884
|
+
case 3:
|
|
27885
|
+
err_12 = _a.sent();
|
|
27886
|
+
console.log(err_12);
|
|
27887
|
+
return [2 /*return*/, false];
|
|
27888
|
+
case 4: return [2 /*return*/, true];
|
|
27889
|
+
}
|
|
27890
|
+
});
|
|
27891
|
+
});
|
|
27892
|
+
};
|
|
27683
27893
|
return IkasCustomerAPI;
|
|
27684
27894
|
}());
|
|
27685
|
-
var templateObject_1$7, templateObject_2$5, templateObject_3$3, templateObject_4$2, templateObject_5$1, templateObject_6$1, templateObject_7$1, templateObject_8$1, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
|
|
27895
|
+
var templateObject_1$7, templateObject_2$5, templateObject_3$3, templateObject_4$2, templateObject_5$1, templateObject_6$1, templateObject_7$1, templateObject_8$1, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14;
|
|
27686
27896
|
|
|
27687
27897
|
var IkasDistrictAPI = /** @class */ (function () {
|
|
27688
27898
|
function IkasDistrictAPI() {
|
|
@@ -29997,7 +30207,7 @@ var style = {
|
|
|
29997
30207
|
backgroundColor: "rgba(255, 0, 0, 0.5)",
|
|
29998
30208
|
};
|
|
29999
30209
|
|
|
30000
|
-
var PACKAGE_VERSION = "0.0.
|
|
30210
|
+
var PACKAGE_VERSION = "0.0.158";
|
|
30001
30211
|
var PageViewModel = /** @class */ (function () {
|
|
30002
30212
|
function PageViewModel(router) {
|
|
30003
30213
|
var _this = this;
|
|
@@ -30949,6 +31159,8 @@ function handleAnalytics(page, pageSpecificDataStr) {
|
|
|
30949
31159
|
var productDetailParsed = JSON.parse(pageSpecificDataStr);
|
|
30950
31160
|
var productDetail = new IkasProductDetail(productDetailParsed.product, productDetailParsed.selectedVariantValues);
|
|
30951
31161
|
Analytics.productView(productDetail);
|
|
31162
|
+
// @ts-ignore
|
|
31163
|
+
IkasStorefrontConfig.store.customerStore.onProductView(productDetail.product.id, productDetail.selectedVariant.id);
|
|
30952
31164
|
}
|
|
30953
31165
|
if (page.type === exports.IkasThemePageType.CATEGORY) {
|
|
30954
31166
|
var category = JSON.parse(pageSpecificDataStr);
|
|
@@ -41,6 +41,7 @@ export declare class IkasProductList {
|
|
|
41
41
|
get isStatic(): boolean;
|
|
42
42
|
get isDiscounted(): boolean;
|
|
43
43
|
get isRecommended(): boolean;
|
|
44
|
+
get isLastViewed(): boolean;
|
|
44
45
|
get isSearch(): boolean;
|
|
45
46
|
get hasPrev(): boolean;
|
|
46
47
|
get hasNext(): boolean;
|
|
@@ -83,6 +84,7 @@ export declare class IkasProductList {
|
|
|
83
84
|
private restoreInfiniteScrollPage;
|
|
84
85
|
private getQueryParams;
|
|
85
86
|
private isBrowser;
|
|
87
|
+
private waitForCustomerStoreInit;
|
|
86
88
|
private searchDebouncer;
|
|
87
89
|
private analyticsDebouncer;
|
|
88
90
|
}
|
|
@@ -110,7 +112,8 @@ export declare enum IkasProductListType {
|
|
|
110
112
|
DISCOUNTED = "DISCOUNTED",
|
|
111
113
|
RECOMMENDED = "RECOMMENDED",
|
|
112
114
|
CATEGORY = "CATEGORY",
|
|
113
|
-
SEARCH = "SEARCH"
|
|
115
|
+
SEARCH = "SEARCH",
|
|
116
|
+
LAST_VIEWED = "LAST_VIEWED"
|
|
114
117
|
}
|
|
115
118
|
export declare enum IkasProductListSortType {
|
|
116
119
|
INCREASING_PRICE = "INCREASING_PRICE",
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { IkasCustomer, IkasFavoriteProduct, IkasOrderTransaction, IkasProduct } from "../models/index";
|
|
2
2
|
import { IkasBaseStore } from "./base";
|
|
3
|
-
declare type SaveContactForm = {
|
|
4
|
-
firstName: string;
|
|
5
|
-
lastName: string;
|
|
6
|
-
email: string;
|
|
7
|
-
message: string;
|
|
8
|
-
};
|
|
9
3
|
export declare class IkasCustomerStore {
|
|
10
4
|
customer?: IkasCustomer | null;
|
|
11
5
|
token?: string | null;
|
|
@@ -13,6 +7,7 @@ export declare class IkasCustomerStore {
|
|
|
13
7
|
private baseStore?;
|
|
14
8
|
private _initialized;
|
|
15
9
|
private _visitorSubscribedEmail;
|
|
10
|
+
private _lastViewedProducts;
|
|
16
11
|
constructor(baseStore?: IkasBaseStore);
|
|
17
12
|
get initialized(): boolean;
|
|
18
13
|
get canCreateEmailSubscription(): boolean;
|
|
@@ -42,8 +37,20 @@ export declare class IkasCustomerStore {
|
|
|
42
37
|
private refreshToken;
|
|
43
38
|
private setCustomer;
|
|
44
39
|
private loadCustomer;
|
|
40
|
+
private getLastViewedProducts;
|
|
41
|
+
private saveLastViewedProducts;
|
|
42
|
+
private loadLastViewedProducts;
|
|
43
|
+
private removeLastViewedProducts;
|
|
44
|
+
private onProductView;
|
|
45
|
+
private saveLocalLastViewedProducts;
|
|
45
46
|
private setToken;
|
|
46
47
|
private loadToken;
|
|
47
48
|
private clearLocalData;
|
|
48
49
|
}
|
|
50
|
+
declare type SaveContactForm = {
|
|
51
|
+
firstName: string;
|
|
52
|
+
lastName: string;
|
|
53
|
+
email: string;
|
|
54
|
+
message: string;
|
|
55
|
+
};
|
|
49
56
|
export {};
|