ublo-lib 1.37.0 → 1.37.1
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/es/common/components/cross-selling-editor/hooks/use-custom-offers.d.ts.map +1 -1
- package/es/common/components/cross-selling-editor/hooks/use-custom-offers.js +5 -4
- package/es/common/components/cross-selling-editor/hooks/use-tunnel-offers.js +4 -4
- package/es/common/components/cross-selling-editor/override-trigger-form.d.ts.map +1 -1
- package/es/common/components/cross-selling-editor/override-trigger-form.js +4 -2
- package/es/common/components/cross-selling-editor/override-trigger-form.module.css +1 -0
- package/es/common/components/cross-selling-editor/services/utils.d.ts +5 -2
- package/es/common/components/cross-selling-editor/services/utils.d.ts.map +1 -1
- package/es/common/components/cross-selling-editor/services/utils.js +30 -3
- package/es/common/components/cross-selling-editor/tester/tunnel-offer.d.ts.map +1 -1
- package/es/common/components/cross-selling-editor/tester/tunnel-offer.js +1 -1
- package/es/common/components/cross-selling-editor/types.d.ts +1 -0
- package/es/common/components/cross-selling-editor/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-custom-offers.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/cross-selling-editor/hooks/use-custom-offers.ts"],"names":[],"mappings":"AAKA,KAAK,KAAK,GAAG;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,aAAa,EACb,eAAe,GAChB,GAAE,KAAU,
|
|
1
|
+
{"version":3,"file":"use-custom-offers.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/cross-selling-editor/hooks/use-custom-offers.ts"],"names":[],"mappings":"AAKA,KAAK,KAAK,GAAG;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,aAAa,EACb,eAAe,GAChB,GAAE,KAAU,UAoEZ"}
|
|
@@ -15,6 +15,7 @@ export default function useCustomOffers({ titleSelector, contentSelector, } = {}
|
|
|
15
15
|
let stay = {};
|
|
16
16
|
let skiPassDurations = [];
|
|
17
17
|
let durationTags = [];
|
|
18
|
+
let ellohaGroups = [];
|
|
18
19
|
let esfOffersContent = [];
|
|
19
20
|
if (cartId) {
|
|
20
21
|
try {
|
|
@@ -22,10 +23,9 @@ export default function useCustomOffers({ titleSelector, contentSelector, } = {}
|
|
|
22
23
|
items = Utils.formatCartContent(cart);
|
|
23
24
|
merchants = Utils.getMerchantsFromCart(cart);
|
|
24
25
|
stay = Utils.getStayFromCart(cart);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
]);
|
|
26
|
+
skiPassDurations = Utils.getSkiPassDurationFromCart(cart);
|
|
27
|
+
durationTags = Utils.getDurationTagsFromCart(cart);
|
|
28
|
+
ellohaGroups = Utils.getEllohaGroupsFromCart(cart);
|
|
29
29
|
esfOffersContent = Utils.getEsfOffersFromCart(cart);
|
|
30
30
|
}
|
|
31
31
|
catch (e) { }
|
|
@@ -36,6 +36,7 @@ export default function useCustomOffers({ titleSelector, contentSelector, } = {}
|
|
|
36
36
|
stay,
|
|
37
37
|
skiPassDurations,
|
|
38
38
|
durationTags,
|
|
39
|
+
ellohaGroups,
|
|
39
40
|
esfOffersContent,
|
|
40
41
|
};
|
|
41
42
|
const storedConfig = Utils.getConfig(contentZone);
|
|
@@ -14,10 +14,9 @@ export default function useTunnelOffers(zone, path, cart) {
|
|
|
14
14
|
const items = Utils.formatCartContent(cart);
|
|
15
15
|
const merchants = Utils.getMerchantsFromCart(cart);
|
|
16
16
|
const stay = Utils.getStayFromCart(cart);
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
]);
|
|
17
|
+
const skiPassDurations = Utils.getSkiPassDurationFromCart(cart);
|
|
18
|
+
const durationTags = Utils.getDurationTagsFromCart(cart);
|
|
19
|
+
const ellohaGroups = Utils.getEllohaGroupsFromCart(cart);
|
|
21
20
|
const esfOffersContent = Utils.getEsfOffersFromCart(cart);
|
|
22
21
|
const content = {
|
|
23
22
|
items,
|
|
@@ -25,6 +24,7 @@ export default function useTunnelOffers(zone, path, cart) {
|
|
|
25
24
|
stay,
|
|
26
25
|
skiPassDurations,
|
|
27
26
|
durationTags,
|
|
27
|
+
ellohaGroups,
|
|
28
28
|
esfOffersContent,
|
|
29
29
|
};
|
|
30
30
|
const storedConfig = Utils.getConfig(container);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"override-trigger-form.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cross-selling-editor/override-trigger-form.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AAEtE,KAAK,KAAK,GAAG;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,SAAS,GACV,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"override-trigger-form.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cross-selling-editor/override-trigger-form.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AAEtE,KAAK,KAAK,GAAG;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,SAAS,GACV,EAAE,KAAK,2CA6KP"}
|
|
@@ -7,7 +7,9 @@ import Tooltip from "dt-design-system/es/tooltip";
|
|
|
7
7
|
import NumberPicker from "dt-design-system/es/number-picker";
|
|
8
8
|
export default function OverrideTriggerForm({ currentOffer, override, setConfig, durations, }) {
|
|
9
9
|
const triggers = override?.triggers || {};
|
|
10
|
-
const
|
|
10
|
+
const isOtherProducts = currentOffer === "STAND";
|
|
11
|
+
const isSkiPasses = currentOffer === "LIFT";
|
|
12
|
+
const { stayFrom, stayTo, stayDuration = 0, merchant, skiPassDuration, skiPassDurationOperator = ">", durationTag, ellohaGroup, } = triggers;
|
|
11
13
|
const updateEntry = (key, value) => {
|
|
12
14
|
setConfig((config = {}) => {
|
|
13
15
|
const itemConfig = (config[currentOffer] || {});
|
|
@@ -50,5 +52,5 @@ export default function OverrideTriggerForm({ currentOffer, override, setConfig,
|
|
|
50
52
|
{ value: "<=", label: "Inférieur ou égal à" },
|
|
51
53
|
{ value: "=", label: "Égal à" },
|
|
52
54
|
];
|
|
53
|
-
return (_jsxs("form", { className: styles.form, onSubmit: submitForm, onClick: stopPropagation, children: [_jsx("div", { className: styles.title, children: "D\u00E9clencheur(s)" }), _jsx("div", { className: styles.subTitle, children: "S\u00E9jour" }), _jsx(Input, { className: styles.input, type: "date", label: "Inclu entre", value: stayFrom || "", onValueChange: (value) => updateEntry("stayFrom", value), compact: true }), _jsx(Input, { className: styles.input, type: "date", label: "et", value: stayTo || "", onValueChange: (value) => updateEntry("stayTo", value), compact: true }), _jsx(NumberPicker, { label: _jsxs(_Fragment, { children: ["Nombre de jour(s)", _jsx(Tooltip, { content: "S\u00E9jour d'une dur\u00E9e sup\u00E9rieur ou \u00E9gal \u00E0...", children: _jsx("span", { className: styles.labelIconContainer, children: _jsx(Icons.Info, { className: styles.labelIcon }) }) })] }), min: 0, max: 40, value: stayDuration || 0, onChange: (value) => updateEntry("stayDuration", value), withInput: true, compact: true }), _jsx("div", { className: styles.subTitle, children: "G\u00E9n\u00E9ral" }), _jsx(Input, { className: styles.input, label: _jsxs(_Fragment, { children: ["Code(s) marchand(s)", _jsx(Tooltip, { content: "Si plusieurs codes marchands, les s\u00E9parer par une virgule", children: _jsx("span", { className: styles.labelIconContainer, children: _jsx(Icons.Info, { className: styles.labelIcon }) }) })] }), value: merchant || "", onValueChange: (value) => updateEntry("merchant", value), compact: true }), _jsx("div", { className: styles.subTitle, children: "Forfaits" }), _jsx(NumberPicker, { className: styles.input, label: "Dur\u00E9e", min: 0, max: 40, value: skiPassDuration || 0, onChange: (value) => updateEntry("skiPassDuration", value), withInput: true, compact: true }), _jsx(Select, { className: styles.input, label: "Op\u00E9rateur de comparaison", options: operatorOptions, value: skiPassDurationOperator || ">", onValueChange: (value) => updateEntry("skiPassDurationOperator", value), compact: true }), durations && (_jsx(Select, { className: styles.input, label: durations?.title, placeholder: " ", options: durations?.tags, value: durationTag || "", onValueChange: (value) => updateEntry("durationTag", value), compact: true }))] }));
|
|
55
|
+
return (_jsxs("form", { className: styles.form, onSubmit: submitForm, onClick: stopPropagation, children: [_jsx("div", { className: styles.title, children: "D\u00E9clencheur(s)" }), _jsx("div", { className: styles.subTitle, children: "S\u00E9jour" }), _jsx(Input, { className: styles.input, type: "date", label: "Inclu entre", value: stayFrom || "", onValueChange: (value) => updateEntry("stayFrom", value), compact: true }), _jsx(Input, { className: styles.input, type: "date", label: "et", value: stayTo || "", onValueChange: (value) => updateEntry("stayTo", value), compact: true }), _jsx(NumberPicker, { label: _jsxs(_Fragment, { children: ["Nombre de jour(s)", _jsx(Tooltip, { content: "S\u00E9jour d'une dur\u00E9e sup\u00E9rieur ou \u00E9gal \u00E0...", children: _jsx("span", { className: styles.labelIconContainer, children: _jsx(Icons.Info, { className: styles.labelIcon }) }) })] }), min: 0, max: 40, value: stayDuration || 0, onChange: (value) => updateEntry("stayDuration", value), withInput: true, compact: true }), _jsx("div", { className: styles.subTitle, children: "G\u00E9n\u00E9ral" }), _jsx(Input, { className: styles.input, label: _jsxs(_Fragment, { children: ["Code(s) marchand(s)", _jsx(Tooltip, { content: "Si plusieurs codes marchands, les s\u00E9parer par une virgule", children: _jsx("span", { className: styles.labelIconContainer, children: _jsx(Icons.Info, { className: styles.labelIcon }) }) })] }), value: merchant || "", onValueChange: (value) => updateEntry("merchant", value), compact: true }), isSkiPasses && (_jsxs(_Fragment, { children: [_jsx("div", { className: styles.subTitle, children: "Forfaits" }), _jsx(NumberPicker, { className: styles.input, label: "Dur\u00E9e", min: 0, max: 40, value: skiPassDuration || 0, onChange: (value) => updateEntry("skiPassDuration", value), withInput: true, compact: true }), _jsx(Select, { className: styles.input, label: "Op\u00E9rateur de comparaison", options: operatorOptions, value: skiPassDurationOperator || ">", onValueChange: (value) => updateEntry("skiPassDurationOperator", value), compact: true }), durations && (_jsx(Select, { className: styles.input, label: durations?.title, placeholder: " ", options: durations?.tags, value: durationTag || "", onValueChange: (value) => updateEntry("durationTag", value), compact: true }))] })), isOtherProducts && (_jsxs(_Fragment, { children: [_jsx("div", { className: styles.subTitle, children: "Activit\u00E9s Elloha" }), _jsx(Input, { className: styles.input, label: "Groupe", value: ellohaGroup || "", onValueChange: (value) => updateEntry("ellohaGroup", value), compact: true })] }))] }));
|
|
54
56
|
}
|
|
@@ -10,6 +10,7 @@ type CartContent = {
|
|
|
10
10
|
stay?: Stay;
|
|
11
11
|
skiPassDurations?: number[];
|
|
12
12
|
durationTags?: string[];
|
|
13
|
+
ellohaGroups?: string[];
|
|
13
14
|
esfOffersContent?: EsfOffersContent[];
|
|
14
15
|
};
|
|
15
16
|
export declare const tunnelOffers: {
|
|
@@ -33,6 +34,7 @@ export declare function hasAllowedOverrides(kind: string): boolean;
|
|
|
33
34
|
type Inscription = {
|
|
34
35
|
duration: string;
|
|
35
36
|
durationTags?: string[];
|
|
37
|
+
categoryGroupCode?: string;
|
|
36
38
|
codes: EsfOffersContent;
|
|
37
39
|
};
|
|
38
40
|
type Order = {
|
|
@@ -55,8 +57,9 @@ export declare function getStayFromCart(cart: Cart): {
|
|
|
55
57
|
to: string;
|
|
56
58
|
duration: number;
|
|
57
59
|
};
|
|
58
|
-
export declare function getSkiPassDurationFromCart(cart: Cart):
|
|
59
|
-
export declare function getDurationTagsFromCart(cart: Cart):
|
|
60
|
+
export declare function getSkiPassDurationFromCart(cart: Cart): number[];
|
|
61
|
+
export declare function getDurationTagsFromCart(cart: Cart): string[];
|
|
62
|
+
export declare function getEllohaGroupsFromCart(cart: Cart): string[];
|
|
60
63
|
export declare function getEsfOffersFromCart(cart: Cart): EsfOffersContent[];
|
|
61
64
|
export declare const CONFIG_ID = "cross-selling-editor";
|
|
62
65
|
export declare function getConfig(container: HTMLElement): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/cross-selling-editor/services/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAa,MAAM,UAAU,CAAC;AAE9E,KAAK,IAAI,GAAG;IACV,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;CAOxB,CAAC;AAEF,KAAK,QAAQ,GAAG,MAAM,OAAO,YAAY,CAAC;AAE1C,wBAAgB,eAAe,CAC7B,SAAS,EAAE,WAAW,EACtB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,MAAM;;;;;IA6D3B;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,MAAM,YAoB3B;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/cross-selling-editor/services/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAa,MAAM,UAAU,CAAC;AAE9E,KAAK,IAAI,GAAG;IACV,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;CAOxB,CAAC;AAEF,KAAK,QAAQ,GAAG,MAAM,OAAO,YAAY,CAAC;AAE1C,wBAAgB,eAAe,CAC7B,SAAS,EAAE,WAAW,EACtB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,MAAM;;;;;IA6D3B;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,MAAM,YAoB3B;AAgJD,eAAO,MAAM,gBAAgB,UAAgD,CAAC;AAE9E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,WAE/C;AAED,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,KAAK,KAAK,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAE/D,KAAK,IAAI,GAAG;IACV,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,MAY3C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,YAS9C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI;;;;;;;;EAMzC;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,YAKpD;AAcD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,YAQjD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,YAMjD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,gBAAgB,EAAE,CAUnE;AAED,eAAO,MAAM,SAAS,yBAAyB,CAAC;AAEhD,wBAAgB,SAAS,CAAC,SAAS,EAAE,WAAW,OAc/C;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAOlE"}
|
|
@@ -57,16 +57,18 @@ function getMatchingOverrides(item, cartContent, forcedEsfOverride) {
|
|
|
57
57
|
return [];
|
|
58
58
|
const { overrides = [] } = item;
|
|
59
59
|
const matchs = overrides.reduce((acc, override) => {
|
|
60
|
-
const { stay, merchants, skiPassDurations = [], durationTags, esfOffersContent, } = cartContent;
|
|
60
|
+
const { stay, merchants, skiPassDurations = [], durationTags, ellohaGroups, esfOffersContent, } = cartContent;
|
|
61
61
|
const isStayMatching = checkStay(override, stay);
|
|
62
62
|
const isMerchantMatching = checkMerchants(override, merchants);
|
|
63
63
|
const isSkiPassDurationMatching = checkSkiPassDurations(override, skiPassDurations);
|
|
64
64
|
const isDurationTagMatching = checkDurationTags(override, durationTags);
|
|
65
|
+
const isEllohaGroupMatching = checkEllohaGroup(override, ellohaGroups);
|
|
65
66
|
const isEsfProductMatching = checkEsfProduct(override, esfOffersContent, forcedEsfOverride);
|
|
66
67
|
const isMatching = isStayMatching ||
|
|
67
68
|
isMerchantMatching ||
|
|
68
69
|
isSkiPassDurationMatching ||
|
|
69
70
|
isDurationTagMatching ||
|
|
71
|
+
isEllohaGroupMatching ||
|
|
70
72
|
isEsfProductMatching;
|
|
71
73
|
return isMatching ? [...acc, override.id] : acc;
|
|
72
74
|
}, []);
|
|
@@ -124,6 +126,14 @@ function checkDurationTags(override, durationTags) {
|
|
|
124
126
|
return false;
|
|
125
127
|
return durationTags.includes(durationTag);
|
|
126
128
|
}
|
|
129
|
+
function checkEllohaGroup(override, ellohaGroups) {
|
|
130
|
+
if (!ellohaGroups)
|
|
131
|
+
return false;
|
|
132
|
+
const { ellohaGroup } = override.triggers || {};
|
|
133
|
+
if (!ellohaGroup)
|
|
134
|
+
return false;
|
|
135
|
+
return ellohaGroups.includes(ellohaGroup);
|
|
136
|
+
}
|
|
127
137
|
function checkEsfProduct(override, esfOffersContent, forcedEsfOverride) {
|
|
128
138
|
if (!esfOffersContent)
|
|
129
139
|
return false;
|
|
@@ -181,7 +191,7 @@ export function getStayFromCart(cart) {
|
|
|
181
191
|
const duration = bareDuration / (1000 * 3600 * 24);
|
|
182
192
|
return { from, to, duration };
|
|
183
193
|
}
|
|
184
|
-
export
|
|
194
|
+
export function getSkiPassDurationFromCart(cart) {
|
|
185
195
|
const { LIFT: items } = cart.orders;
|
|
186
196
|
if (!items?.length)
|
|
187
197
|
return [];
|
|
@@ -198,7 +208,7 @@ function patchDuration(duration) {
|
|
|
198
208
|
}
|
|
199
209
|
return 1;
|
|
200
210
|
}
|
|
201
|
-
export
|
|
211
|
+
export function getDurationTagsFromCart(cart) {
|
|
202
212
|
const { LIFT: items } = cart.orders;
|
|
203
213
|
if (!items?.length)
|
|
204
214
|
return [];
|
|
@@ -208,6 +218,14 @@ export async function getDurationTagsFromCart(cart) {
|
|
|
208
218
|
const uniqueTags = tags?.length > 0 ? [...new Set(tags)] : [];
|
|
209
219
|
return uniqueTags;
|
|
210
220
|
}
|
|
221
|
+
export function getEllohaGroupsFromCart(cart) {
|
|
222
|
+
const { STAND: items } = cart.orders;
|
|
223
|
+
if (!items?.length)
|
|
224
|
+
return [];
|
|
225
|
+
const groups = items[0].inscriptions.map((i) => i.categoryGroupCode);
|
|
226
|
+
const uniqueGroups = groups?.length > 0 ? [...new Set(groups)] : [];
|
|
227
|
+
return uniqueGroups;
|
|
228
|
+
}
|
|
211
229
|
export function getEsfOffersFromCart(cart) {
|
|
212
230
|
const { ESF: items } = cart.orders;
|
|
213
231
|
if (!items?.length)
|
|
@@ -222,6 +240,15 @@ export function getEsfOffersFromCart(cart) {
|
|
|
222
240
|
}
|
|
223
241
|
export const CONFIG_ID = "cross-selling-editor";
|
|
224
242
|
export function getConfig(container) {
|
|
243
|
+
const allConfigs = container?.querySelectorAll(`#${CONFIG_ID}`);
|
|
244
|
+
if (allConfigs.length > 1) {
|
|
245
|
+
Array.from(allConfigs).forEach((config) => {
|
|
246
|
+
const isEmpty = config.textContent?.trim().length === 0 || config.textContent === "{}";
|
|
247
|
+
if (isEmpty) {
|
|
248
|
+
config.remove();
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
}
|
|
225
252
|
const config = container?.querySelector(`#${CONFIG_ID}`);
|
|
226
253
|
const json = JSON.parse(config?.textContent || "{}");
|
|
227
254
|
return json;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel-offer.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/cross-selling-editor/tester/tunnel-offer.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIlD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,KAAK,EACL,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,MAAM,GACP,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"tunnel-offer.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/cross-selling-editor/tester/tunnel-offer.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIlD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,KAAK,EACL,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,MAAM,GACP,EAAE,KAAK,2CAsIP"}
|
|
@@ -47,7 +47,7 @@ export default function TesterTunnelOffer({ kind, value, label, cartOffers, upda
|
|
|
47
47
|
return null;
|
|
48
48
|
}
|
|
49
49
|
if (isSkiPasses) {
|
|
50
|
-
return (_jsxs(React.Fragment, { children: [_jsx(Input, { type: "number", className: styles.input, label: `Durée du forfait n°${number}`, placeholder: "En jour(s) (Optionnel)", min: 0, max: 40, value: state.skiPassDurations?.[index] || 0, onValueChange: updateState("skiPassDurations"), compact: true }), durations && (_jsx(Select, { className: styles.input, label: durations?.title + ` n°${number}`, placeholder: " ", options: durations?.tags, value: state.durationTags?.[index] || "", onValueChange: updateState("durationTags"), compact: true }))] }, index));
|
|
50
|
+
return (_jsxs(React.Fragment, { children: [_jsx(Input, { className: styles.input, label: `Marchand n°${number}`, placeholder: "Code (Optionnel)", value: state.merchants?.[index] || "", onValueChange: updateState("merchants"), compact: true }, index), _jsx(Input, { type: "number", className: styles.input, label: `Durée du forfait n°${number}`, placeholder: "En jour(s) (Optionnel)", min: 0, max: 40, value: state.skiPassDurations?.[index] || 0, onValueChange: updateState("skiPassDurations"), compact: true }), durations && (_jsx(Select, { className: styles.input, label: durations?.title + ` n°${number}`, placeholder: " ", options: durations?.tags, value: state.durationTags?.[index] || "", onValueChange: updateState("durationTags"), compact: true }))] }, index));
|
|
51
51
|
}
|
|
52
52
|
return (_jsx(Input, { className: styles.input, label: `Marchand n°${number}`, placeholder: "Code (Optionnel)", value: state.merchants?.[index] || "", onValueChange: updateState("merchants"), compact: true }, index));
|
|
53
53
|
})] })), _jsx(NumberPicker, { label: label, value: itemValue, onChange: updateCartOffers(value), min: 0, max: 10 })] }, label));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cross-selling-editor/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cross-selling-editor/types.ts"],"names":[],"mappings":"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"}
|