addio-admin-sdk 1.7.110 → 1.7.112
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/Interfaces/Algolia/index.d.ts +2 -0
- package/dist/Interfaces/TCG/index.d.ts +31 -0
- package/dist/Interfaces/TCG/index.js +8 -1
- package/dist/Interfaces/TCG/index.js.map +1 -1
- package/dist/utils/tcgService.d.ts +59 -1
- package/dist/utils/tcgService.js +233 -1
- package/dist/utils/tcgService.js.map +1 -1
- package/package.json +1 -1
|
@@ -58,6 +58,8 @@ export interface IIndexedProductAlgolia {
|
|
|
58
58
|
readonly is_service?: boolean;
|
|
59
59
|
readonly is_simple?: boolean;
|
|
60
60
|
readonly is_hidden_in_client_pos?: boolean;
|
|
61
|
+
readonly is_presale?: boolean;
|
|
62
|
+
readonly release_date?: Date | string;
|
|
61
63
|
readonly categories: {
|
|
62
64
|
readonly [key: string]: any;
|
|
63
65
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import ITranslation from '../Translation';
|
|
1
2
|
export interface ITcgExternalServiceParams {
|
|
2
3
|
readonly cardgame_slugs: string[];
|
|
3
4
|
readonly default_parent_category?: string | null;
|
|
@@ -127,3 +128,33 @@ export declare enum TCGVariationAttributesEnum {
|
|
|
127
128
|
export declare const defaultValuesForTcgAttributes: {
|
|
128
129
|
[value in TCGVariationAttributesEnum]: string;
|
|
129
130
|
};
|
|
131
|
+
export interface ITcgAttributeValues {
|
|
132
|
+
[slug: string]: {
|
|
133
|
+
readonly value: ITranslation[];
|
|
134
|
+
readonly tag: string | undefined;
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
export type ITcgAttributes = {
|
|
138
|
+
[value in TCGVariationAttributesEnum]: ITcgAttributeValues;
|
|
139
|
+
};
|
|
140
|
+
export interface ILangOption {
|
|
141
|
+
slug: string;
|
|
142
|
+
label: string;
|
|
143
|
+
fullLabel?: string;
|
|
144
|
+
}
|
|
145
|
+
export interface ICardFinishTag {
|
|
146
|
+
label: string;
|
|
147
|
+
value: {
|
|
148
|
+
[TCGVariationAttributesEnum.CONDITION]: string;
|
|
149
|
+
[TCGVariationAttributesEnum.FINISH]: string;
|
|
150
|
+
};
|
|
151
|
+
fullLabel?: string;
|
|
152
|
+
variant?: TCGCardFinishEnum;
|
|
153
|
+
selected?: boolean;
|
|
154
|
+
extraLabel?: string;
|
|
155
|
+
}
|
|
156
|
+
export declare enum ItemNameVariantEnum {
|
|
157
|
+
BOTH = "use-both",
|
|
158
|
+
PARENT = "use-parent",
|
|
159
|
+
DECLI = "use-decli"
|
|
160
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultValuesForTcgAttributes = exports.TCGVariationAttributesEnum = exports.TCGAttributesEnum = exports.TCGCardFinishEnum = exports.TCGProductFormatsEnum = void 0;
|
|
3
|
+
exports.ItemNameVariantEnum = exports.defaultValuesForTcgAttributes = exports.TCGVariationAttributesEnum = exports.TCGAttributesEnum = exports.TCGCardFinishEnum = exports.TCGProductFormatsEnum = void 0;
|
|
4
4
|
var TCGProductFormatsEnum;
|
|
5
5
|
(function (TCGProductFormatsEnum) {
|
|
6
6
|
TCGProductFormatsEnum["CARD"] = "tcg_card";
|
|
@@ -45,4 +45,11 @@ exports.defaultValuesForTcgAttributes = {
|
|
|
45
45
|
[TCGVariationAttributesEnum.CONDITION]: '',
|
|
46
46
|
[TCGVariationAttributesEnum.LANG]: ''
|
|
47
47
|
};
|
|
48
|
+
var ItemNameVariantEnum;
|
|
49
|
+
(function (ItemNameVariantEnum) {
|
|
50
|
+
ItemNameVariantEnum["BOTH"] = "use-both";
|
|
51
|
+
ItemNameVariantEnum["PARENT"] = "use-parent";
|
|
52
|
+
ItemNameVariantEnum["DECLI"] = "use-decli";
|
|
53
|
+
})(ItemNameVariantEnum = exports.ItemNameVariantEnum || (exports.ItemNameVariantEnum = {}));
|
|
54
|
+
// #endregion
|
|
48
55
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Interfaces/TCG/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Interfaces/TCG/index.ts"],"names":[],"mappings":";;;AA8FA,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAChC,0CAAiB,CAAA;IACjB,0CAAiB,CAAA;IACjB,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;AACtB,CAAC,EALW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAKhC;AAED,IAAY,iBAYX;AAZD,WAAY,iBAAiB;IAC5B,sCAAiB,CAAA;IACjB,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,0CAAqB,CAAA;IACrB,2CAAsB,CAAA;IACtB,0DAAqC,CAAA;IACrC,sCAAiB,CAAA;IACjB,4CAAuB,CAAA;IACvB,8DAAyC,CAAA;IACzC,kDAA6B,CAAA;IAC7B,oEAA+C,CAAA;AAChD,CAAC,EAZW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAY5B;AAED,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC5B,0CAAqB,CAAA;IACrB,gDAA2B,CAAA;IAC3B,0CAAqB,CAAA;IACrB,oCAAe,CAAA;IACf,8CAAyB,CAAA;AAC1B,CAAC,EANW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAM5B;AAED;;;GAGG;AACH,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACrC,mDAAqB,CAAA;IACrB,yDAA2B,CAAA;IAC3B,mDAAqB,CAAA;AACtB,CAAC,EAJW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAIrC;AAEY,QAAA,6BAA6B,GAAsD;IAC/F,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,MAAM;IAC7D,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,EAAE;IAC1C,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,EAAE;CACrC,CAAA;AA8BD,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC9B,wCAAiB,CAAA;IACjB,4CAAqB,CAAA;IACrB,0CAAmB,CAAA;AACpB,CAAC,EAJW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAI9B;AACD,aAAa"}
|
|
@@ -1,2 +1,60 @@
|
|
|
1
|
-
import { ITcgExternalServiceParams } from '../Interfaces/TCG';
|
|
1
|
+
import { ICardFinishTag, ILangOption, ITcgAttributes, ITcgExternalServiceParams, ItemNameVariantEnum } from '../Interfaces/TCG';
|
|
2
|
+
import { TCGCardFinishEnum } from '../Interfaces/TCG';
|
|
3
|
+
import { IIndexedDeclinationAlgolia, IIndexedProductAlgolia } from '../Interfaces/Algolia';
|
|
4
|
+
import IInventoryItem from '../Interfaces/Product/IInventoryItem';
|
|
5
|
+
import { ICartItem } from '../Interfaces/Cart';
|
|
6
|
+
import IAttribute from '../Interfaces/Attribute';
|
|
2
7
|
export declare const getDefaultTcgExternalServiceParams: () => ITcgExternalServiceParams;
|
|
8
|
+
/**
|
|
9
|
+
* Get show order for a given value
|
|
10
|
+
* @param finishAttrValue
|
|
11
|
+
*/
|
|
12
|
+
export declare const getTcgFinishAttrOrder: (finishAttrValue?: TCGCardFinishEnum) => number;
|
|
13
|
+
export declare const getGradientForFinish: (finish: TCGCardFinishEnum) => "other" | "multi" | "cold" | "gold";
|
|
14
|
+
/**
|
|
15
|
+
* Get currently available declinations, ordered by finish attribute (TCG), and by current POS space lang (language attribute TCG)
|
|
16
|
+
* @param declinations
|
|
17
|
+
* @param locale
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
export declare const filterAndOrderDeclinations: (declinations: IIndexedDeclinationAlgolia[] | undefined, locale: string | undefined, allInventories: IInventoryItem[]) => IIndexedDeclinationAlgolia[];
|
|
21
|
+
/**
|
|
22
|
+
* Construct all options for Language attribute (TCG), based on available declinations
|
|
23
|
+
* @param declinations
|
|
24
|
+
* @param allTcgAttrLabels All constructed labels based on expected TCG attributes
|
|
25
|
+
* @param locale Current POS locale
|
|
26
|
+
*/
|
|
27
|
+
export declare const constructAllLangOptions: (declinations: IIndexedDeclinationAlgolia[], allTcgAttrLabels: ITcgAttributes | undefined, locale: string | undefined) => ILangOption[];
|
|
28
|
+
/**
|
|
29
|
+
* Construct all unique finish and condition attribute combinations (TCG), based on available declinations
|
|
30
|
+
* @param declinations
|
|
31
|
+
* @param allTcgAttrLabels
|
|
32
|
+
*/
|
|
33
|
+
export declare const constructAllFinishOptions: (declinations: IIndexedDeclinationAlgolia[], allTcgAttrLabels: ITcgAttributes | undefined, locale: string | undefined) => ICardFinishTag[];
|
|
34
|
+
/**
|
|
35
|
+
* Get set label for a given card product in POS locale
|
|
36
|
+
* @param prod
|
|
37
|
+
* @param allAttributes
|
|
38
|
+
* @param locale
|
|
39
|
+
*/
|
|
40
|
+
export declare const getProductSetLabel: (prod: IIndexedProductAlgolia | ICartItem, allAttributes: IAttribute[], locale: string | undefined) => string;
|
|
41
|
+
/**
|
|
42
|
+
* Get first found declination from list where passed attribute values found in decli
|
|
43
|
+
* @param decliList
|
|
44
|
+
* @param attributesToCheck Values of chosen TCG attributes to check for in decli.
|
|
45
|
+
*/
|
|
46
|
+
export declare const findCorrespondingDecliByAttributes: (decliList: IIndexedDeclinationAlgolia[], attributesToCheck: {
|
|
47
|
+
[attrSlug: string]: string | undefined;
|
|
48
|
+
}) => IIndexedDeclinationAlgolia | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Get the available inventory for the currently selected store (found in local storage)
|
|
51
|
+
* @param inventoryItem
|
|
52
|
+
*/
|
|
53
|
+
export declare const getAvailableInventoryForCurrentStore: (inventoryItem: IInventoryItem) => number;
|
|
54
|
+
/**
|
|
55
|
+
* Construct product or decli name to show (mostly for cart item retroactions)
|
|
56
|
+
* @param item - The cart item
|
|
57
|
+
* @param locale
|
|
58
|
+
* @param type - Which name(s) to use (either parent name, decli name, or both)
|
|
59
|
+
*/
|
|
60
|
+
export declare const getProductNameToUse: (item: ICartItem, locale: string | undefined, type?: ItemNameVariantEnum) => string;
|
package/dist/utils/tcgService.js
CHANGED
|
@@ -1,9 +1,241 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDefaultTcgExternalServiceParams = void 0;
|
|
6
|
+
exports.getProductNameToUse = exports.getAvailableInventoryForCurrentStore = exports.findCorrespondingDecliByAttributes = exports.getProductSetLabel = exports.constructAllFinishOptions = exports.constructAllLangOptions = exports.filterAndOrderDeclinations = exports.getGradientForFinish = exports.getTcgFinishAttrOrder = exports.getDefaultTcgExternalServiceParams = void 0;
|
|
7
|
+
const TCG_1 = require("../Interfaces/TCG");
|
|
8
|
+
const uniqBy_1 = __importDefault(require("lodash/uniqBy"));
|
|
9
|
+
const orderBy_1 = __importDefault(require("lodash/orderBy"));
|
|
10
|
+
const TCG_2 = require("../Interfaces/TCG");
|
|
11
|
+
const object_1 = require("../utils/object");
|
|
12
|
+
const locale_1 = require("../utils/locale");
|
|
4
13
|
const getDefaultTcgExternalServiceParams = () => ({
|
|
5
14
|
cardgame_slugs: [],
|
|
6
15
|
default_parent_category: null
|
|
7
16
|
});
|
|
8
17
|
exports.getDefaultTcgExternalServiceParams = getDefaultTcgExternalServiceParams;
|
|
18
|
+
/**
|
|
19
|
+
* Get show order for a given value
|
|
20
|
+
* @param finishAttrValue
|
|
21
|
+
*/
|
|
22
|
+
const getTcgFinishAttrOrder = (finishAttrValue = TCG_2.TCGCardFinishEnum.NORMAL) => {
|
|
23
|
+
const expectedFinishOrder = {
|
|
24
|
+
[TCG_2.TCGCardFinishEnum.NORMAL]: 1,
|
|
25
|
+
[TCG_2.TCGCardFinishEnum.FOIL]: 2,
|
|
26
|
+
[TCG_2.TCGCardFinishEnum.HOLO]: 3,
|
|
27
|
+
[TCG_2.TCGCardFinishEnum.HOLOFOIL]: 4,
|
|
28
|
+
[TCG_2.TCGCardFinishEnum.COLDFOIL]: 5,
|
|
29
|
+
[TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL]: 6,
|
|
30
|
+
[TCG_2.TCGCardFinishEnum.ETCHED]: 7,
|
|
31
|
+
[TCG_2.TCGCardFinishEnum.UNLIMITED]: 8,
|
|
32
|
+
[TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL]: 9,
|
|
33
|
+
[TCG_2.TCGCardFinishEnum.FIRST_EDITION]: 10,
|
|
34
|
+
[TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL]: 11
|
|
35
|
+
};
|
|
36
|
+
return expectedFinishOrder[finishAttrValue];
|
|
37
|
+
};
|
|
38
|
+
exports.getTcgFinishAttrOrder = getTcgFinishAttrOrder;
|
|
39
|
+
const getGradientForFinish = (finish) => {
|
|
40
|
+
switch (finish) {
|
|
41
|
+
case TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL:
|
|
42
|
+
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL:
|
|
43
|
+
case TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL:
|
|
44
|
+
return 'multi';
|
|
45
|
+
case TCG_2.TCGCardFinishEnum.COLDFOIL:
|
|
46
|
+
return 'cold';
|
|
47
|
+
case TCG_2.TCGCardFinishEnum.UNLIMITED:
|
|
48
|
+
case TCG_2.TCGCardFinishEnum.ETCHED:
|
|
49
|
+
case TCG_2.TCGCardFinishEnum.FIRST_EDITION:
|
|
50
|
+
return 'other';
|
|
51
|
+
case TCG_2.TCGCardFinishEnum.FOIL:
|
|
52
|
+
case TCG_2.TCGCardFinishEnum.HOLO:
|
|
53
|
+
case TCG_2.TCGCardFinishEnum.HOLOFOIL:
|
|
54
|
+
default:
|
|
55
|
+
return 'gold';
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
exports.getGradientForFinish = getGradientForFinish;
|
|
59
|
+
/**
|
|
60
|
+
* Get currently available declinations, ordered by finish attribute (TCG), and by current POS space lang (language attribute TCG)
|
|
61
|
+
* @param declinations
|
|
62
|
+
* @param locale
|
|
63
|
+
* @returns
|
|
64
|
+
*/
|
|
65
|
+
const filterAndOrderDeclinations = (declinations, locale, allInventories) => {
|
|
66
|
+
if (!declinations || !declinations.length)
|
|
67
|
+
return [];
|
|
68
|
+
// A. Filter out any unavailable declinations from possible options
|
|
69
|
+
const removedUnavailableDeclis = declinations.filter((d) => {
|
|
70
|
+
return allInventories.some((i) => i.sku == d.sku);
|
|
71
|
+
});
|
|
72
|
+
// B. Order by finish attribute first, then by lang
|
|
73
|
+
return (0, orderBy_1.default)(removedUnavailableDeclis, (d) => {
|
|
74
|
+
let startNb = 2;
|
|
75
|
+
const finishAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_finish');
|
|
76
|
+
if (finishAttr) {
|
|
77
|
+
// Multiply start number by finish attr order
|
|
78
|
+
startNb *= (0, exports.getTcgFinishAttrOrder)(finishAttr[0]);
|
|
79
|
+
}
|
|
80
|
+
// If lang attr same as current lang for POS, remove 1 to bring higher up in array
|
|
81
|
+
const langAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_language');
|
|
82
|
+
if (locale && langAttr && langAttr[0] == `tcg_lang_${locale}`) {
|
|
83
|
+
startNb -= 1;
|
|
84
|
+
}
|
|
85
|
+
return startNb;
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
exports.filterAndOrderDeclinations = filterAndOrderDeclinations;
|
|
89
|
+
/**
|
|
90
|
+
* Construct all options for Language attribute (TCG), based on available declinations
|
|
91
|
+
* @param declinations
|
|
92
|
+
* @param allTcgAttrLabels All constructed labels based on expected TCG attributes
|
|
93
|
+
* @param locale Current POS locale
|
|
94
|
+
*/
|
|
95
|
+
const constructAllLangOptions = (declinations, allTcgAttrLabels, locale) => {
|
|
96
|
+
if (!declinations.length)
|
|
97
|
+
return [];
|
|
98
|
+
const allOptions = [];
|
|
99
|
+
for (let variation of declinations) {
|
|
100
|
+
const tcgLangAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.LANG}`);
|
|
101
|
+
if (!tcgLangAttr)
|
|
102
|
+
continue;
|
|
103
|
+
const langSlug = tcgLangAttr[0];
|
|
104
|
+
if (langSlug && !allOptions.some((o) => o.slug == langSlug)) {
|
|
105
|
+
const sameLabel = !!allTcgAttrLabels ? allTcgAttrLabels.tcg_language[langSlug] : undefined;
|
|
106
|
+
allOptions.push({
|
|
107
|
+
slug: langSlug,
|
|
108
|
+
label: sameLabel && sameLabel.tag ? sameLabel.tag : tcgLangAttr[0],
|
|
109
|
+
fullLabel: sameLabel ? (0, locale_1.getLocaleOfDictionnary)(sameLabel.value, locale) : tcgLangAttr[0]
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return allOptions;
|
|
114
|
+
};
|
|
115
|
+
exports.constructAllLangOptions = constructAllLangOptions;
|
|
116
|
+
/**
|
|
117
|
+
* Construct all unique finish and condition attribute combinations (TCG), based on available declinations
|
|
118
|
+
* @param declinations
|
|
119
|
+
* @param allTcgAttrLabels
|
|
120
|
+
*/
|
|
121
|
+
const constructAllFinishOptions = (declinations, allTcgAttrLabels, locale) => {
|
|
122
|
+
if (!allTcgAttrLabels)
|
|
123
|
+
return [];
|
|
124
|
+
if (!declinations.length)
|
|
125
|
+
return [];
|
|
126
|
+
// a. Create combinations based on variations
|
|
127
|
+
// Only keep combos where condition attr is set
|
|
128
|
+
const allCombinaitions = declinations
|
|
129
|
+
.map((variation) => {
|
|
130
|
+
const tcgFinishAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.FINISH}`);
|
|
131
|
+
const tcgConditionAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${[TCG_2.TCGVariationAttributesEnum.CONDITION]}`);
|
|
132
|
+
return {
|
|
133
|
+
[TCG_2.TCGVariationAttributesEnum.CONDITION]: !tcgConditionAttr || !tcgConditionAttr.length
|
|
134
|
+
? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.CONDITION]
|
|
135
|
+
: tcgConditionAttr[0],
|
|
136
|
+
[TCG_2.TCGVariationAttributesEnum.FINISH]: !tcgFinishAttr || !tcgFinishAttr.length
|
|
137
|
+
? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.FINISH]
|
|
138
|
+
: tcgFinishAttr[0]
|
|
139
|
+
};
|
|
140
|
+
})
|
|
141
|
+
.filter((v) => v.tcg_condition);
|
|
142
|
+
// b. Filter out duplicates
|
|
143
|
+
const removedDuplicates = (0, uniqBy_1.default)(allCombinaitions, (v) => `${v.tcg_condition}${v.tcg_finish ? '_' + v.tcg_finish : ''}`);
|
|
144
|
+
// c. Return constructed options object array
|
|
145
|
+
return removedDuplicates.map((combAttr) => {
|
|
146
|
+
const condLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.value`);
|
|
147
|
+
const finishLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.FINISH}.${combAttr.tcg_finish}.value`);
|
|
148
|
+
let fullLabelArray = [];
|
|
149
|
+
if (condLabel)
|
|
150
|
+
fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(condLabel, locale));
|
|
151
|
+
if (finishLabel)
|
|
152
|
+
fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(finishLabel, locale));
|
|
153
|
+
return {
|
|
154
|
+
label: `${(0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.tag`) || combAttr.tcg_condition}`,
|
|
155
|
+
variant: combAttr.tcg_finish,
|
|
156
|
+
value: combAttr,
|
|
157
|
+
fullLabel: fullLabelArray.join(' - '),
|
|
158
|
+
extraLabel: [TCG_2.TCGCardFinishEnum.FIRST_EDITION, TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL].includes(combAttr.tcg_finish)
|
|
159
|
+
? ' 1st'
|
|
160
|
+
: ''
|
|
161
|
+
};
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
exports.constructAllFinishOptions = constructAllFinishOptions;
|
|
165
|
+
/**
|
|
166
|
+
* Get set label for a given card product in POS locale
|
|
167
|
+
* @param prod
|
|
168
|
+
* @param allAttributes
|
|
169
|
+
* @param locale
|
|
170
|
+
*/
|
|
171
|
+
const getProductSetLabel = (prod, allAttributes, locale) => {
|
|
172
|
+
const tcgSetAttr = (0, object_1.recursiveCheckObject)(prod, 'attributes.tcg_set');
|
|
173
|
+
if (!tcgSetAttr)
|
|
174
|
+
return '';
|
|
175
|
+
if (!allAttributes.length)
|
|
176
|
+
return tcgSetAttr[0];
|
|
177
|
+
const sameAttr = allAttributes.find((a) => a.slug == 'tcg_set');
|
|
178
|
+
if (!sameAttr)
|
|
179
|
+
return tcgSetAttr[0];
|
|
180
|
+
const sameValue = sameAttr.values.find((v) => v.slug == tcgSetAttr[0]);
|
|
181
|
+
return sameValue ? (0, locale_1.getLocaleOfDictionnary)(sameValue.value, locale) : tcgSetAttr[0];
|
|
182
|
+
};
|
|
183
|
+
exports.getProductSetLabel = getProductSetLabel;
|
|
184
|
+
/**
|
|
185
|
+
* Get first found declination from list where passed attribute values found in decli
|
|
186
|
+
* @param decliList
|
|
187
|
+
* @param attributesToCheck Values of chosen TCG attributes to check for in decli.
|
|
188
|
+
*/
|
|
189
|
+
const findCorrespondingDecliByAttributes = (decliList, attributesToCheck) => {
|
|
190
|
+
if (Object.values(attributesToCheck).every((attr) => attr == undefined))
|
|
191
|
+
return;
|
|
192
|
+
const decliWithSameValues = decliList.find((d) => {
|
|
193
|
+
let foundSameCount = 0;
|
|
194
|
+
const arrayToCheck = Object.entries(attributesToCheck);
|
|
195
|
+
for (let [attrSlug, value] of arrayToCheck) {
|
|
196
|
+
const attrValueToCheck = (0, object_1.recursiveCheckObject)(d, `attributes.${attrSlug}.0`) ||
|
|
197
|
+
(0, object_1.recursiveCheckObject)(TCG_2.defaultValuesForTcgAttributes, attrSlug);
|
|
198
|
+
if (attrValueToCheck == value) {
|
|
199
|
+
foundSameCount += 1;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return foundSameCount == arrayToCheck.length;
|
|
203
|
+
});
|
|
204
|
+
return decliWithSameValues;
|
|
205
|
+
};
|
|
206
|
+
exports.findCorrespondingDecliByAttributes = findCorrespondingDecliByAttributes;
|
|
207
|
+
/**
|
|
208
|
+
* Get the available inventory for the currently selected store (found in local storage)
|
|
209
|
+
* @param inventoryItem
|
|
210
|
+
*/
|
|
211
|
+
const getAvailableInventoryForCurrentStore = (inventoryItem) => {
|
|
212
|
+
const currentStore = localStorage.getItem('branch') || '';
|
|
213
|
+
const sameStoreInv = inventoryItem.inventories.find((i) => i.store_id == currentStore);
|
|
214
|
+
if (!sameStoreInv)
|
|
215
|
+
return 0;
|
|
216
|
+
return sameStoreInv.qty.available;
|
|
217
|
+
};
|
|
218
|
+
exports.getAvailableInventoryForCurrentStore = getAvailableInventoryForCurrentStore;
|
|
219
|
+
/**
|
|
220
|
+
* Construct product or decli name to show (mostly for cart item retroactions)
|
|
221
|
+
* @param item - The cart item
|
|
222
|
+
* @param locale
|
|
223
|
+
* @param type - Which name(s) to use (either parent name, decli name, or both)
|
|
224
|
+
*/
|
|
225
|
+
const getProductNameToUse = (item, locale, type) => {
|
|
226
|
+
const productName = !!item.parent_name ? (0, locale_1.getLocaleOfDictionnary)(item.parent_name, locale) : '';
|
|
227
|
+
const decliName = !!item.name ? (0, locale_1.getLocaleOfDictionnary)(item.name, locale) : '';
|
|
228
|
+
let bothNames = [];
|
|
229
|
+
if (!!productName)
|
|
230
|
+
bothNames.push(productName);
|
|
231
|
+
if (!!decliName)
|
|
232
|
+
bothNames.push(decliName);
|
|
233
|
+
const nameStr = type === TCG_1.ItemNameVariantEnum.BOTH
|
|
234
|
+
? bothNames.join(' | ')
|
|
235
|
+
: type === TCG_1.ItemNameVariantEnum.PARENT
|
|
236
|
+
? productName
|
|
237
|
+
: decliName;
|
|
238
|
+
return nameStr;
|
|
239
|
+
};
|
|
240
|
+
exports.getProductNameToUse = getProductNameToUse;
|
|
9
241
|
//# sourceMappingURL=tcgService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tcgService.js","sourceRoot":"","sources":["../../src/utils/tcgService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tcgService.js","sourceRoot":"","sources":["../../src/utils/tcgService.ts"],"names":[],"mappings":"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"}
|