@searchspring/snap-store-mobx 0.66.4 → 0.67.0
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/dist/cjs/Recommendation/Stores/RecommendationProfileStore.d.ts.map +1 -1
- package/dist/cjs/Recommendation/Stores/RecommendationProfileStore.js +3 -0
- package/dist/cjs/Search/Stores/SearchResultStore.d.ts +9 -3
- package/dist/cjs/Search/Stores/SearchResultStore.d.ts.map +1 -1
- package/dist/cjs/Search/Stores/SearchResultStore.js +19 -7
- package/dist/cjs/Storage/StorageStore.d.ts.map +1 -1
- package/dist/cjs/Storage/StorageStore.js +15 -10
- package/dist/esm/Recommendation/Stores/RecommendationProfileStore.d.ts.map +1 -1
- package/dist/esm/Recommendation/Stores/RecommendationProfileStore.js +3 -0
- package/dist/esm/Search/Stores/SearchResultStore.d.ts +9 -3
- package/dist/esm/Search/Stores/SearchResultStore.d.ts.map +1 -1
- package/dist/esm/Search/Stores/SearchResultStore.js +17 -5
- package/dist/esm/Storage/StorageStore.d.ts.map +1 -1
- package/dist/esm/Storage/StorageStore.js +15 -10
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendationProfileStore.d.ts","sourceRoot":"","sources":["../../../../src/Recommendation/Stores/RecommendationProfileStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,qBAAa,0BAA0B;IAC/B,GAAG,EAAG,MAAM,CAAC;IACb,SAAS,EAAG,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAClC,IAAI,CAAC,qBAAa;gBAEb,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,8BAA8B;
|
|
1
|
+
{"version":3,"file":"RecommendationProfileStore.d.ts","sourceRoot":"","sources":["../../../../src/Recommendation/Stores/RecommendationProfileStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,qBAAa,0BAA0B;IAC/B,GAAG,EAAG,MAAM,CAAC;IACb,SAAS,EAAG,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAClC,IAAI,CAAC,qBAAa;gBAEb,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,8BAA8B;CAqB1E"}
|
|
@@ -10,6 +10,9 @@ var RecommendationProfileStore = /** @class */ (function () {
|
|
|
10
10
|
if (!((_a = data === null || data === void 0 ? void 0 : data.profile) === null || _a === void 0 ? void 0 : _a.tag)) {
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
|
+
if (!data.profile.display.template) {
|
|
14
|
+
throw new Error("Recommendation Profile Store found a profile without a set template: ".concat(data.profile.tag));
|
|
15
|
+
}
|
|
13
16
|
this.tag = data.profile.tag;
|
|
14
17
|
this.placement = data.profile.placement;
|
|
15
18
|
this.display = data.profile.display;
|
|
@@ -33,6 +33,10 @@ type ProductMinimal = {
|
|
|
33
33
|
attributes: Record<string, unknown>;
|
|
34
34
|
mappings: SearchResponseModelResultMappings;
|
|
35
35
|
};
|
|
36
|
+
type SearchResponseModelResultVariants = {
|
|
37
|
+
preferences: Record<string, string[]>;
|
|
38
|
+
data: VariantData[];
|
|
39
|
+
};
|
|
36
40
|
export declare class Product {
|
|
37
41
|
type: string;
|
|
38
42
|
id: string;
|
|
@@ -45,7 +49,9 @@ export declare class Product {
|
|
|
45
49
|
quantity: number;
|
|
46
50
|
mask: ProductMask;
|
|
47
51
|
variants?: Variants;
|
|
48
|
-
constructor(services: StoreServices, result: SearchResponseModelResult
|
|
52
|
+
constructor(services: StoreServices, result: SearchResponseModelResult & {
|
|
53
|
+
variants?: SearchResponseModelResultVariants;
|
|
54
|
+
}, metaData: MetaResponseModel, config?: StoreConfigs);
|
|
49
55
|
get display(): ProductMinimal;
|
|
50
56
|
}
|
|
51
57
|
export declare class Badges {
|
|
@@ -68,8 +74,8 @@ export declare class Variants {
|
|
|
68
74
|
selections: VariantSelection[];
|
|
69
75
|
setActive: (variant: Variant) => void;
|
|
70
76
|
private config?;
|
|
71
|
-
constructor(variantData: VariantData[], mask: ProductMask, config?: VariantConfig);
|
|
72
|
-
update(variantData: VariantData[], config?: VariantConfig | undefined): void;
|
|
77
|
+
constructor(variantData: VariantData[], mask: ProductMask, config?: VariantConfig, preferences?: Record<string, string[]>);
|
|
78
|
+
update(variantData: VariantData[], config?: VariantConfig | undefined, preferences?: Record<string, string[]>): void;
|
|
73
79
|
makeSelections(options?: Record<string, string[]>): void;
|
|
74
80
|
refineSelections(fromSelection: VariantSelection): void;
|
|
75
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResultStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/SearchResultStore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,aAAa,EAGb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACX,yBAAyB,EACzB,6BAA6B,EAC7B,gCAAgC,EAChC,iCAAiC,EACjC,6CAA6C,EAC7C,6CAA6C,EAC7C,iBAAiB,EACjB,MAAM,2BAA2B,CAAC;AAKnC,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC7D,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAE9C;gBAGA,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,CAAC,EAAE,yBAAyB,EAAE,EACxC,cAAc,CAAC,EAAE,6BAA6B,EAC9C,SAAS,CAAC,EAAE,gCAAgC,EAC5C,MAAM,CAAC,EAAE,OAAO,EAChB,sBAAsB,CAAC,EAAE,6BAA6B,EAAE,yCAAyC;IACjG,eAAe,CAAC,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE;CAqEvC;AAED,qBAAa,MAAM;IACX,IAAI,SAAY;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACzC,QAAQ,EAAE,iCAAiC,CAEhD;IACK,MAAM,KAAM;IACZ,MAAM,EAAE,6CAA6C,CAAC;IACtD,KAAK,EAAE,MAAM,CAAC;gBAET,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,6CAA6C;CAW1F;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,iCAAiC,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CACtC,MAAM,EACN;IACC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CACD,CAAC;AAEF,KAAK,cAAc,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,EAAE,iCAAiC,CAAC;CAC5C,CAAC;AAEF,qBAAa,OAAO;IACZ,IAAI,SAAa;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAK;IACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACzC,QAAQ,EAAE,iCAAiC,CAEhD;IACK,MAAM,KAAM;IACZ,QAAQ,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAM;IAC7B,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,SAAK;IACb,IAAI,cAAqB;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchResultStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/SearchResultStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -141,7 +141,7 @@ var Banner = /** @class */ (function () {
|
|
|
141
141
|
exports.Banner = Banner;
|
|
142
142
|
var Product = /** @class */ (function () {
|
|
143
143
|
function Product(services, result, metaData, config) {
|
|
144
|
-
var _a, _b, _c, _d;
|
|
144
|
+
var _a, _b, _c, _d, _e;
|
|
145
145
|
this.type = 'product';
|
|
146
146
|
this.position = 0;
|
|
147
147
|
this.attributes = {};
|
|
@@ -168,8 +168,13 @@ var Product = /** @class */ (function () {
|
|
|
168
168
|
// failed to parse the variant JSON
|
|
169
169
|
console.error(err, "Invalid variant JSON for product id: ".concat(result.id));
|
|
170
170
|
}
|
|
171
|
+
// default variants field
|
|
172
|
+
}
|
|
173
|
+
else if (result.variants) {
|
|
174
|
+
// if variants are already parsed, use them
|
|
175
|
+
this.variants = new Variants(result.variants.data, this.mask, (_d = config === null || config === void 0 ? void 0 : config.settings) === null || _d === void 0 ? void 0 : _d.variants, result.variants.preferences);
|
|
171
176
|
}
|
|
172
|
-
if ((
|
|
177
|
+
if ((_e = result === null || result === void 0 ? void 0 : result.children) === null || _e === void 0 ? void 0 : _e.length) {
|
|
173
178
|
this.children = result.children.map(function (variant, index) {
|
|
174
179
|
return new Child(services, __assign({ id: "".concat(result.id, "-").concat(index) }, variant));
|
|
175
180
|
});
|
|
@@ -285,7 +290,7 @@ var ProductMask = /** @class */ (function () {
|
|
|
285
290
|
}());
|
|
286
291
|
exports.ProductMask = ProductMask;
|
|
287
292
|
var Variants = /** @class */ (function () {
|
|
288
|
-
function Variants(variantData, mask, config) {
|
|
293
|
+
function Variants(variantData, mask, config, preferences) {
|
|
289
294
|
var _this = this;
|
|
290
295
|
this.data = [];
|
|
291
296
|
this.selections = [];
|
|
@@ -297,9 +302,9 @@ var Variants = /** @class */ (function () {
|
|
|
297
302
|
if (config) {
|
|
298
303
|
this.config = config;
|
|
299
304
|
}
|
|
300
|
-
this.update(variantData, config);
|
|
305
|
+
this.update(variantData, config, preferences);
|
|
301
306
|
}
|
|
302
|
-
Variants.prototype.update = function (variantData, config) {
|
|
307
|
+
Variants.prototype.update = function (variantData, config, preferences) {
|
|
303
308
|
var _this = this;
|
|
304
309
|
if (config === void 0) { config = this.config; }
|
|
305
310
|
try {
|
|
@@ -334,6 +339,13 @@ var Variants = /** @class */ (function () {
|
|
|
334
339
|
_this.selections.push(new VariantSelection(_this, option, variantOptionConfig));
|
|
335
340
|
});
|
|
336
341
|
var preselectedOptions_1 = {};
|
|
342
|
+
//api preferences
|
|
343
|
+
if (preferences) {
|
|
344
|
+
Object.keys(preferences).forEach(function (option) {
|
|
345
|
+
preselectedOptions_1[option] = preferences[option];
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
//user defined preferences - these override API preferences
|
|
337
349
|
if (config === null || config === void 0 ? void 0 : config.options) {
|
|
338
350
|
Object.keys(config === null || config === void 0 ? void 0 : config.options).forEach(function (option) {
|
|
339
351
|
if (config.options[option].preSelected) {
|
|
@@ -410,7 +422,7 @@ var Variants = /** @class */ (function () {
|
|
|
410
422
|
if (selectedSelections.length) {
|
|
411
423
|
var availableVariants = this.data;
|
|
412
424
|
var _loop_1 = function (selectedSelection) {
|
|
413
|
-
availableVariants = availableVariants.filter(function (variant) { var _a; return ((_a = selectedSelection.selected) === null || _a === void 0 ? void 0 : _a.value) == variant.options[selectedSelection.field].value && variant.available; });
|
|
425
|
+
availableVariants = availableVariants.filter(function (variant) { var _a, _b; return ((_a = selectedSelection.selected) === null || _a === void 0 ? void 0 : _a.value) == ((_b = variant.options[selectedSelection.field]) === null || _b === void 0 ? void 0 : _b.value) && variant.available; });
|
|
414
426
|
};
|
|
415
427
|
// loop through selectedSelections and only include available products that match current selections
|
|
416
428
|
for (var _i = 0, selectedSelections_1 = selectedSelections; _i < selectedSelections_1.length; _i++) {
|
|
@@ -450,7 +462,7 @@ var VariantSelection = /** @class */ (function () {
|
|
|
450
462
|
var selectedSelections = variants.selections.filter(function (selection) { return selection.field != _this.field && selection.selected; });
|
|
451
463
|
var availableVariants = variants.data.filter(function (variant) { return variant.available; });
|
|
452
464
|
var _loop_2 = function (selectedSelection) {
|
|
453
|
-
availableVariants = availableVariants.filter(function (variant) { var _a; return ((_a = selectedSelection.selected) === null || _a === void 0 ? void 0 : _a.value) == variant.options[selectedSelection.field].value && variant.available; });
|
|
465
|
+
availableVariants = availableVariants.filter(function (variant) { var _a, _b, _c; return ((_a = selectedSelection.selected) === null || _a === void 0 ? void 0 : _a.value) == ((_c = (_b = variant.options) === null || _b === void 0 ? void 0 : _b[selectedSelection.field]) === null || _c === void 0 ? void 0 : _c.value) && variant.available; });
|
|
454
466
|
};
|
|
455
467
|
// loop through selectedSelections and remove products that do not match
|
|
456
468
|
for (var _i = 0, selectedSelections_2 = selectedSelections; _i < selectedSelections_2.length; _i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageStore.d.ts","sourceRoot":"","sources":["../../../src/Storage/StorageStore.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;IACxB,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,YAAY,CAC8G;IAC3H,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;gBAE3B,MAAM,CAAC,EAAE,aAAa;IA8C3B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"StorageStore.d.ts","sourceRoot":"","sources":["../../../src/Storage/StorageStore.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;IACxB,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,YAAY,CAC8G;IAC3H,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;gBAE3B,MAAM,CAAC,EAAE,aAAa;IA8C3B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IA6BnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAiClC,KAAK,IAAI,IAAI;CAcpB;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,WAAW,GAAG,MAAM,OAAO,WAAW,CAAC;IAC7C,MAAM,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,oBAAY,WAAW;IACtB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;CACjB"}
|
|
@@ -69,16 +69,21 @@ var StorageStore = /** @class */ (function () {
|
|
|
69
69
|
location = location[p] = location[p] || {};
|
|
70
70
|
}
|
|
71
71
|
});
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
72
|
+
try {
|
|
73
|
+
switch (this.type) {
|
|
74
|
+
case StorageType.session:
|
|
75
|
+
window.sessionStorage.setItem(this.key, JSON.stringify(this.state));
|
|
76
|
+
break;
|
|
77
|
+
case StorageType.local:
|
|
78
|
+
window.localStorage.setItem(this.key, JSON.stringify(this.state));
|
|
79
|
+
break;
|
|
80
|
+
case StorageType.cookie:
|
|
81
|
+
utils.cookies.set(this.key, JSON.stringify(this.state), this.sameSite, this.expiration, this.cookieDomain);
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
console.warn("something went wrong setting ".concat(this.key, " to ").concat(this.type, " storage"));
|
|
82
87
|
}
|
|
83
88
|
};
|
|
84
89
|
StorageStore.prototype.get = function (path) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendationProfileStore.d.ts","sourceRoot":"","sources":["../../../../src/Recommendation/Stores/RecommendationProfileStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,qBAAa,0BAA0B;IAC/B,GAAG,EAAG,MAAM,CAAC;IACb,SAAS,EAAG,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAClC,IAAI,CAAC,qBAAa;gBAEb,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,8BAA8B;
|
|
1
|
+
{"version":3,"file":"RecommendationProfileStore.d.ts","sourceRoot":"","sources":["../../../../src/Recommendation/Stores/RecommendationProfileStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,qBAAa,0BAA0B;IAC/B,GAAG,EAAG,MAAM,CAAC;IACb,SAAS,EAAG,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAClC,IAAI,CAAC,qBAAa;gBAEb,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,8BAA8B;CAqB1E"}
|
|
@@ -6,6 +6,9 @@ export class RecommendationProfileStore {
|
|
|
6
6
|
if (!data?.profile?.tag) {
|
|
7
7
|
return;
|
|
8
8
|
}
|
|
9
|
+
if (!data.profile.display.template) {
|
|
10
|
+
throw new Error(`Recommendation Profile Store found a profile without a set template: ${data.profile.tag}`);
|
|
11
|
+
}
|
|
9
12
|
this.tag = data.profile.tag;
|
|
10
13
|
this.placement = data.profile.placement;
|
|
11
14
|
this.display = data.profile.display;
|
|
@@ -33,6 +33,10 @@ type ProductMinimal = {
|
|
|
33
33
|
attributes: Record<string, unknown>;
|
|
34
34
|
mappings: SearchResponseModelResultMappings;
|
|
35
35
|
};
|
|
36
|
+
type SearchResponseModelResultVariants = {
|
|
37
|
+
preferences: Record<string, string[]>;
|
|
38
|
+
data: VariantData[];
|
|
39
|
+
};
|
|
36
40
|
export declare class Product {
|
|
37
41
|
type: string;
|
|
38
42
|
id: string;
|
|
@@ -45,7 +49,9 @@ export declare class Product {
|
|
|
45
49
|
quantity: number;
|
|
46
50
|
mask: ProductMask;
|
|
47
51
|
variants?: Variants;
|
|
48
|
-
constructor(services: StoreServices, result: SearchResponseModelResult
|
|
52
|
+
constructor(services: StoreServices, result: SearchResponseModelResult & {
|
|
53
|
+
variants?: SearchResponseModelResultVariants;
|
|
54
|
+
}, metaData: MetaResponseModel, config?: StoreConfigs);
|
|
49
55
|
get display(): ProductMinimal;
|
|
50
56
|
}
|
|
51
57
|
export declare class Badges {
|
|
@@ -68,8 +74,8 @@ export declare class Variants {
|
|
|
68
74
|
selections: VariantSelection[];
|
|
69
75
|
setActive: (variant: Variant) => void;
|
|
70
76
|
private config?;
|
|
71
|
-
constructor(variantData: VariantData[], mask: ProductMask, config?: VariantConfig);
|
|
72
|
-
update(variantData: VariantData[], config?: VariantConfig | undefined): void;
|
|
77
|
+
constructor(variantData: VariantData[], mask: ProductMask, config?: VariantConfig, preferences?: Record<string, string[]>);
|
|
78
|
+
update(variantData: VariantData[], config?: VariantConfig | undefined, preferences?: Record<string, string[]>): void;
|
|
73
79
|
makeSelections(options?: Record<string, string[]>): void;
|
|
74
80
|
refineSelections(fromSelection: VariantSelection): void;
|
|
75
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResultStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/SearchResultStore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,aAAa,EAGb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACX,yBAAyB,EACzB,6BAA6B,EAC7B,gCAAgC,EAChC,iCAAiC,EACjC,6CAA6C,EAC7C,6CAA6C,EAC7C,iBAAiB,EACjB,MAAM,2BAA2B,CAAC;AAKnC,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC7D,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAE9C;gBAGA,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,CAAC,EAAE,yBAAyB,EAAE,EACxC,cAAc,CAAC,EAAE,6BAA6B,EAC9C,SAAS,CAAC,EAAE,gCAAgC,EAC5C,MAAM,CAAC,EAAE,OAAO,EAChB,sBAAsB,CAAC,EAAE,6BAA6B,EAAE,yCAAyC;IACjG,eAAe,CAAC,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE;CAqEvC;AAED,qBAAa,MAAM;IACX,IAAI,SAAY;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACzC,QAAQ,EAAE,iCAAiC,CAEhD;IACK,MAAM,KAAM;IACZ,MAAM,EAAE,6CAA6C,CAAC;IACtD,KAAK,EAAE,MAAM,CAAC;gBAET,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,6CAA6C;CAW1F;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,iCAAiC,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CACtC,MAAM,EACN;IACC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CACD,CAAC;AAEF,KAAK,cAAc,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,EAAE,iCAAiC,CAAC;CAC5C,CAAC;AAEF,qBAAa,OAAO;IACZ,IAAI,SAAa;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAK;IACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACzC,QAAQ,EAAE,iCAAiC,CAEhD;IACK,MAAM,KAAM;IACZ,QAAQ,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAM;IAC7B,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,SAAK;IACb,IAAI,cAAqB;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchResultStore.d.ts","sourceRoot":"","sources":["../../../../src/Search/Stores/SearchResultStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -115,6 +115,11 @@ export class Product {
|
|
|
115
115
|
// failed to parse the variant JSON
|
|
116
116
|
console.error(err, `Invalid variant JSON for product id: ${result.id}`);
|
|
117
117
|
}
|
|
118
|
+
// default variants field
|
|
119
|
+
}
|
|
120
|
+
else if (result.variants) {
|
|
121
|
+
// if variants are already parsed, use them
|
|
122
|
+
this.variants = new Variants(result.variants.data, this.mask, config?.settings?.variants, result.variants.preferences);
|
|
118
123
|
}
|
|
119
124
|
if (result?.children?.length) {
|
|
120
125
|
this.children = result.children.map((variant, index) => {
|
|
@@ -220,7 +225,7 @@ export class ProductMask {
|
|
|
220
225
|
}
|
|
221
226
|
}
|
|
222
227
|
export class Variants {
|
|
223
|
-
constructor(variantData, mask, config) {
|
|
228
|
+
constructor(variantData, mask, config, preferences) {
|
|
224
229
|
this.data = [];
|
|
225
230
|
this.selections = [];
|
|
226
231
|
// setting function in constructor to prevent exposing mask as class property
|
|
@@ -231,9 +236,9 @@ export class Variants {
|
|
|
231
236
|
if (config) {
|
|
232
237
|
this.config = config;
|
|
233
238
|
}
|
|
234
|
-
this.update(variantData, config);
|
|
239
|
+
this.update(variantData, config, preferences);
|
|
235
240
|
}
|
|
236
|
-
update(variantData, config = this.config) {
|
|
241
|
+
update(variantData, config = this.config, preferences) {
|
|
237
242
|
try {
|
|
238
243
|
const options = [];
|
|
239
244
|
// create variants objects
|
|
@@ -264,6 +269,13 @@ export class Variants {
|
|
|
264
269
|
this.selections.push(new VariantSelection(this, option, variantOptionConfig));
|
|
265
270
|
});
|
|
266
271
|
const preselectedOptions = {};
|
|
272
|
+
//api preferences
|
|
273
|
+
if (preferences) {
|
|
274
|
+
Object.keys(preferences).forEach((option) => {
|
|
275
|
+
preselectedOptions[option] = preferences[option];
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
//user defined preferences - these override API preferences
|
|
267
279
|
if (config?.options) {
|
|
268
280
|
Object.keys(config?.options).forEach((option) => {
|
|
269
281
|
if (config.options[option].preSelected) {
|
|
@@ -340,7 +352,7 @@ export class Variants {
|
|
|
340
352
|
let availableVariants = this.data;
|
|
341
353
|
// loop through selectedSelections and only include available products that match current selections
|
|
342
354
|
for (const selectedSelection of selectedSelections) {
|
|
343
|
-
availableVariants = availableVariants.filter((variant) => selectedSelection.selected?.value == variant.options[selectedSelection.field]
|
|
355
|
+
availableVariants = availableVariants.filter((variant) => selectedSelection.selected?.value == variant.options[selectedSelection.field]?.value && variant.available);
|
|
344
356
|
}
|
|
345
357
|
// set active variant
|
|
346
358
|
if (availableVariants.length == 1) {
|
|
@@ -372,7 +384,7 @@ export class VariantSelection {
|
|
|
372
384
|
let availableVariants = variants.data.filter((variant) => variant.available);
|
|
373
385
|
// loop through selectedSelections and remove products that do not match
|
|
374
386
|
for (const selectedSelection of selectedSelections) {
|
|
375
|
-
availableVariants = availableVariants.filter((variant) => selectedSelection.selected?.value == variant.options[selectedSelection.field]
|
|
387
|
+
availableVariants = availableVariants.filter((variant) => selectedSelection.selected?.value == variant.options?.[selectedSelection.field]?.value && variant.available);
|
|
376
388
|
}
|
|
377
389
|
const newValues = variants.data
|
|
378
390
|
.filter((variant) => variant.options[this.field])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageStore.d.ts","sourceRoot":"","sources":["../../../src/Storage/StorageStore.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;IACxB,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,YAAY,CAC8G;IAC3H,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;gBAE3B,MAAM,CAAC,EAAE,aAAa;IA8C3B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"StorageStore.d.ts","sourceRoot":"","sources":["../../../src/Storage/StorageStore.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;IACxB,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,YAAY,CAC8G;IAC3H,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;gBAE3B,MAAM,CAAC,EAAE,aAAa;IA8C3B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IA6BnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAiClC,KAAK,IAAI,IAAI;CAcpB;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,WAAW,GAAG,MAAM,OAAO,WAAW,CAAC;IAC7C,MAAM,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,oBAAY,WAAW;IACtB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;CACjB"}
|
|
@@ -65,16 +65,21 @@ export class StorageStore {
|
|
|
65
65
|
location = location[p] = location[p] || {};
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
68
|
+
try {
|
|
69
|
+
switch (this.type) {
|
|
70
|
+
case StorageType.session:
|
|
71
|
+
window.sessionStorage.setItem(this.key, JSON.stringify(this.state));
|
|
72
|
+
break;
|
|
73
|
+
case StorageType.local:
|
|
74
|
+
window.localStorage.setItem(this.key, JSON.stringify(this.state));
|
|
75
|
+
break;
|
|
76
|
+
case StorageType.cookie:
|
|
77
|
+
utils.cookies.set(this.key, JSON.stringify(this.state), this.sameSite, this.expiration, this.cookieDomain);
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
console.warn(`something went wrong setting ${this.key} to ${this.type} storage`);
|
|
78
83
|
}
|
|
79
84
|
}
|
|
80
85
|
get(path) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-store-mobx",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.67.0",
|
|
4
4
|
"description": "Snap MobX Store",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -20,16 +20,16 @@
|
|
|
20
20
|
"test:watch": "jest --watch"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@searchspring/snap-toolbox": "
|
|
23
|
+
"@searchspring/snap-toolbox": "0.67.0",
|
|
24
24
|
"mobx": "6.9.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@searchspring/snap-client": "
|
|
28
|
-
"@searchspring/snap-url-manager": "
|
|
27
|
+
"@searchspring/snap-client": "0.67.0",
|
|
28
|
+
"@searchspring/snap-url-manager": "0.67.0"
|
|
29
29
|
},
|
|
30
30
|
"sideEffects": false,
|
|
31
31
|
"files": [
|
|
32
32
|
"dist/**/*"
|
|
33
33
|
],
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "728123edbdd9fde8a8ed11ef623875819bd4477e"
|
|
35
35
|
}
|