ublo-lib 1.38.13 → 1.38.15
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/future/components/msem-preset-editor/components/widget-list-item.d.ts.map +1 -1
- package/es/future/components/msem-preset-editor/components/widget-list-item.js +3 -1
- package/es/future/components/msem-preset-editor/editors/index.d.ts +2 -0
- package/es/future/components/msem-preset-editor/editors/index.d.ts.map +1 -1
- package/es/future/components/msem-preset-editor/editors/index.js +2 -0
- package/es/future/components/msem-preset-editor/editors/lodgings.d.ts.map +1 -1
- package/es/future/components/msem-preset-editor/editors/lodgings.js +49 -35
- package/es/future/components/msem-preset-editor/editors/lodgings.module.css +4 -0
- package/es/future/components/msem-preset-editor/editors/ski-passes.d.ts.map +1 -1
- package/es/future/components/msem-preset-editor/editors/ski-passes.js +12 -5
- package/es/future/components/msem-preset-editor/editors/ski-rental.d.ts +17 -0
- package/es/future/components/msem-preset-editor/editors/ski-rental.d.ts.map +1 -0
- package/es/future/components/msem-preset-editor/editors/ski-rental.js +91 -0
- package/es/future/components/msem-preset-editor/msem-preset-editor.d.ts.map +1 -1
- package/es/future/components/msem-preset-editor/msem-preset-editor.js +3 -3
- package/es/future/components/msem-preset-editor/msem-preset-editor.module.css +0 -4
- package/es/future/components/msem-preset-editor/services/api.d.ts +1 -0
- package/es/future/components/msem-preset-editor/services/api.d.ts.map +1 -1
- package/es/future/components/msem-preset-editor/services/api.js +4 -0
- package/es/future/components/msem-preset-editor/services/offers.d.ts +12 -1
- package/es/future/components/msem-preset-editor/services/offers.d.ts.map +1 -1
- package/es/future/components/msem-preset-linker/msem-preset-linker.module.css +0 -2
- package/es/future/hooks/use-msem-presets.d.ts +1 -1
- package/es/future/hooks/use-msem-presets.js +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-list-item.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/components/widget-list-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACvD,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CACpE,CAAC;
|
|
1
|
+
{"version":3,"file":"widget-list-item.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/components/widget-list-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACvD,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CACpE,CAAC;AAWF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,GACpB,EAAE,KAAK,2CAoJP"}
|
|
@@ -11,6 +11,7 @@ const ALLOW_PRESETS_ON_WIDGETS = [
|
|
|
11
11
|
"liftJb",
|
|
12
12
|
"elloha",
|
|
13
13
|
"vakario",
|
|
14
|
+
"skiRental",
|
|
14
15
|
];
|
|
15
16
|
export default function WidgetListItem({ item, preset, updatePreset, removePreset, setShowPresetDialog, }) {
|
|
16
17
|
const [opened, setOpened] = React.useState(false);
|
|
@@ -39,7 +40,8 @@ export default function WidgetListItem({ item, preset, updatePreset, removePrese
|
|
|
39
40
|
"otherProducts",
|
|
40
41
|
...ALLOW_PRESETS_ON_WIDGETS,
|
|
41
42
|
];
|
|
42
|
-
const
|
|
43
|
+
const isSkiRental = widget === "skiRental";
|
|
44
|
+
const allowAdvancedPresets = !isSkiRental && allowedWidgets.includes(sub.widget);
|
|
43
45
|
const showEditButton = isSelected && allowAdvancedPresets;
|
|
44
46
|
const showButtons = showEditButton || isSelected;
|
|
45
47
|
const classes = classNames(css.sub, {
|
|
@@ -4,6 +4,7 @@ import Lodgings from "./lodgings";
|
|
|
4
4
|
import Elloha from "./elloha";
|
|
5
5
|
import Vakario from "./vakario";
|
|
6
6
|
import StandardProducts from "./standard-products";
|
|
7
|
+
import SkiRental from "./ski-rental";
|
|
7
8
|
declare const Editor: {
|
|
8
9
|
lodging: typeof Lodgings;
|
|
9
10
|
skiPass: typeof SkiPasses;
|
|
@@ -11,6 +12,7 @@ declare const Editor: {
|
|
|
11
12
|
elloha: typeof Elloha;
|
|
12
13
|
vakario: typeof Vakario;
|
|
13
14
|
otherProducts: typeof StandardProducts;
|
|
15
|
+
skiRental: typeof SkiRental;
|
|
14
16
|
};
|
|
15
17
|
export default Editor;
|
|
16
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/editors/index.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/editors/index.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,QAAA,MAAM,MAAM;;;;;;;;CAQX,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -4,6 +4,7 @@ import Lodgings from "./lodgings";
|
|
|
4
4
|
import Elloha from "./elloha";
|
|
5
5
|
import Vakario from "./vakario";
|
|
6
6
|
import StandardProducts from "./standard-products";
|
|
7
|
+
import SkiRental from "./ski-rental";
|
|
7
8
|
const Editor = {
|
|
8
9
|
lodging: Lodgings,
|
|
9
10
|
skiPass: SkiPasses,
|
|
@@ -11,5 +12,6 @@ const Editor = {
|
|
|
11
12
|
elloha: Elloha,
|
|
12
13
|
vakario: Vakario,
|
|
13
14
|
otherProducts: StandardProducts,
|
|
15
|
+
skiRental: SkiRental,
|
|
14
16
|
};
|
|
15
17
|
export default Editor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lodgings.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/editors/lodgings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,KAAK,KAAK,GAAG;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5E,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"lodgings.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/editors/lodgings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,KAAK,KAAK,GAAG;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5E,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAwCF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,eAAe,EACf,MAAM,EACN,SAAS,EACT,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,WAAW,GACZ,EAAE,KAAK,2CA2TP"}
|
|
@@ -3,6 +3,7 @@ import * as React from "react";
|
|
|
3
3
|
import NumberPicker from "dt-design-system/es/number-picker";
|
|
4
4
|
import Select from "dt-design-system/es/select";
|
|
5
5
|
import MultipleSelect from "dt-design-system/es/multiple-select";
|
|
6
|
+
import Input from "dt-design-system/es/input";
|
|
6
7
|
import Form from "../components/form";
|
|
7
8
|
import * as API from "../services/api";
|
|
8
9
|
import css from "./lodgings.module.css";
|
|
@@ -10,28 +11,29 @@ const DEFAULT_DATA = {
|
|
|
10
11
|
adults: 0,
|
|
11
12
|
children: 0,
|
|
12
13
|
lodging: "",
|
|
14
|
+
merchants: [],
|
|
13
15
|
standings: [],
|
|
14
16
|
options: [],
|
|
15
17
|
districts: [],
|
|
16
18
|
nbRooms: [],
|
|
17
19
|
roomType: "",
|
|
18
20
|
type: "",
|
|
21
|
+
filter: "",
|
|
19
22
|
};
|
|
20
23
|
export default function Lodgings({ msemServicesUrl, preset, setPreset, setShowPresetDialog, testPreset, onChange, urlOverride, }) {
|
|
21
24
|
const savedPreset = React.useRef(preset);
|
|
22
25
|
const [ready, setReady] = React.useState(false);
|
|
23
|
-
const [lodgings,
|
|
26
|
+
const [lodgings, setLodgings] = React.useState([]);
|
|
24
27
|
const [filters, setFilters] = React.useState({
|
|
25
28
|
standings: [],
|
|
26
29
|
options: [],
|
|
27
30
|
districts: [],
|
|
28
31
|
});
|
|
29
32
|
const [rooms, setRooms] = React.useState([]);
|
|
30
|
-
const [loading, setLoading] = React.useState(
|
|
33
|
+
const [loading, setLoading] = React.useState(true);
|
|
31
34
|
const [data, setData] = React.useState(getDefaultData(preset));
|
|
32
35
|
const kinds = [...new Set(lodgings.map(({ kind }) => kind))];
|
|
33
36
|
const { channel, resort, facet } = preset?.options || {};
|
|
34
|
-
const showLodgingPageCheckbox = !!data.lodging;
|
|
35
37
|
const showFilters = !data.lodging;
|
|
36
38
|
const updateField = (field) => (value) => {
|
|
37
39
|
setData({ ...data, [field]: value });
|
|
@@ -46,10 +48,16 @@ export default function Lodgings({ msemServicesUrl, preset, setPreset, setShowPr
|
|
|
46
48
|
value: lodging.slug,
|
|
47
49
|
label: lodging.name,
|
|
48
50
|
}));
|
|
51
|
+
const formattedMerchants = lodgings.map((lodging) => ({
|
|
52
|
+
value: lodging.merchant,
|
|
53
|
+
label: lodging.name,
|
|
54
|
+
}));
|
|
49
55
|
const formattedRooms = rooms.map((room) => ({
|
|
50
56
|
label: room.title,
|
|
51
57
|
value: room.type,
|
|
52
58
|
}));
|
|
59
|
+
const selectedMerchants = data.merchants?.map((merchant) => formattedMerchants.find((d) => d.value === merchant));
|
|
60
|
+
const selectedStandings = data.standings?.map((standing) => filters?.standings?.find((d) => d.value === standing));
|
|
53
61
|
const selectedOptions = data.options?.map((option) => filters?.options?.find((d) => d.value === option));
|
|
54
62
|
const selectedDistricts = data.districts?.map((district) => filters?.districts?.find((d) => d.value === district));
|
|
55
63
|
const cancelPreset = () => {
|
|
@@ -84,7 +92,7 @@ export default function Lodgings({ msemServicesUrl, preset, setPreset, setShowPr
|
|
|
84
92
|
return { ...acc, [key]: entries };
|
|
85
93
|
}
|
|
86
94
|
}, {});
|
|
87
|
-
|
|
95
|
+
setLodgings(filters.accomodations);
|
|
88
96
|
setFilters(formattedFilters);
|
|
89
97
|
setReady(true);
|
|
90
98
|
}
|
|
@@ -99,40 +107,45 @@ export default function Lodgings({ msemServicesUrl, preset, setPreset, setShowPr
|
|
|
99
107
|
}
|
|
100
108
|
}, [channel, facet, msemServicesUrl, ready, resort]);
|
|
101
109
|
React.useEffect(() => {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
+
if (ready && data.lodging) {
|
|
111
|
+
const getRoomTypes = async () => {
|
|
112
|
+
try {
|
|
113
|
+
setLoading(true);
|
|
114
|
+
const id = lodgings.find((lodging) => lodging.slug === data.lodging)?.id;
|
|
115
|
+
if (id) {
|
|
116
|
+
const { rooms } = await API.getLodgingRooms(msemServicesUrl, id, resort, facet);
|
|
117
|
+
if (rooms) {
|
|
118
|
+
setRooms(rooms);
|
|
119
|
+
}
|
|
110
120
|
}
|
|
121
|
+
setData((data) => ({
|
|
122
|
+
...data,
|
|
123
|
+
standings: DEFAULT_DATA.standings,
|
|
124
|
+
options: DEFAULT_DATA.options,
|
|
125
|
+
districts: DEFAULT_DATA.districts,
|
|
126
|
+
type: DEFAULT_DATA.type,
|
|
127
|
+
}));
|
|
111
128
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
districts: DEFAULT_DATA.districts,
|
|
123
|
-
type: DEFAULT_DATA.type,
|
|
124
|
-
}));
|
|
125
|
-
};
|
|
126
|
-
getRoomTypes();
|
|
127
|
-
}, [data.lodging, facet, lodgings, msemServicesUrl, resort]);
|
|
129
|
+
catch (e) {
|
|
130
|
+
console.error(e);
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
setLoading(false);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
getRoomTypes();
|
|
137
|
+
}
|
|
138
|
+
}, [data.lodging, facet, lodgings, msemServicesUrl, ready, resort]);
|
|
128
139
|
React.useEffect(() => {
|
|
129
140
|
setPreset((current = {}) => {
|
|
130
141
|
const { lodging } = data;
|
|
131
142
|
const adults = parseInt(data.adults);
|
|
132
143
|
const children = parseInt(data.children);
|
|
133
|
-
const accomodation = lodging
|
|
144
|
+
const accomodation = lodging?.length === 1 ? lodging[0] : undefined;
|
|
134
145
|
const agesChildren = [...new Array(children)].map(() => 12);
|
|
135
146
|
const paxPlan = adults ? { adults, children, agesChildren } : undefined;
|
|
147
|
+
const merchants = data.merchants?.length ? data.merchants : undefined;
|
|
148
|
+
const standings = data.standings?.length ? data.standings : undefined;
|
|
136
149
|
const options = data.options?.length ? data.options : undefined;
|
|
137
150
|
const districts = data.districts?.length ? data.districts : undefined;
|
|
138
151
|
const type = data.type || undefined;
|
|
@@ -140,7 +153,9 @@ export default function Lodgings({ msemServicesUrl, preset, setPreset, setShowPr
|
|
|
140
153
|
const nbRooms = data.nbRooms[0] > 0 ? data.nbRooms : undefined;
|
|
141
154
|
const previewDetails = { paxPlan, roomType };
|
|
142
155
|
const presets = {
|
|
156
|
+
merchants,
|
|
143
157
|
accomodation,
|
|
158
|
+
standings,
|
|
144
159
|
options,
|
|
145
160
|
districts,
|
|
146
161
|
nbRooms,
|
|
@@ -156,25 +171,24 @@ export default function Lodgings({ msemServicesUrl, preset, setPreset, setShowPr
|
|
|
156
171
|
return newPreset;
|
|
157
172
|
});
|
|
158
173
|
}, [data, onChange, urlOverride, setPreset]);
|
|
159
|
-
return (_jsxs(Form, { title: "Presets h\u00E9bergements", width: 580, preset: preset, buttonsActions: {
|
|
160
|
-
testPreset,
|
|
161
|
-
cancelPreset,
|
|
162
|
-
confirmPreset,
|
|
163
|
-
}, children: [_jsx("div", { className: css.label, children: "Nombre de personnes" }), _jsxs("div", { className: css.row, children: [_jsx(NumberPicker, { className: css.peopleInput, label: "Adultes", min: 0, max: 20, value: data.adults, onChange: updateField("adults"), withInput: true }), _jsx(NumberPicker, { className: css.peopleInput, label: "Enfants", min: 0, max: 9, value: data.children, onChange: updateField("children"), withInput: true })] }), _jsx("div", { className: css.label, children: "H\u00E9bergement" }), _jsx(Select, { placeholder: "S\u00E9lectionnez un h\u00E9bergement", options: formattedLodgings, value: data.lodging, onValueChange: updateField("lodging"), loading: loading }), !showFilters && (_jsxs(_Fragment, { children: [_jsx("div", { className: css.label, children: "Chambres" }), (formattedRooms?.length > 0 || loading) && (_jsx(Select, { label: "Type de bien", placeholder: "S\u00E9lectionnez un type de bien", value: data.roomType, options: formattedRooms, loading: loading, onValueChange: updateField("roomType") })), _jsx(NumberPicker, { label: "Nombre de chambres", min: 0, max: 20, value: data.nbRooms?.[0] || 0, onChange: updateRoomNb, withInput: true })] })), showFilters && (_jsxs(_Fragment, { children: [_jsx("div", { className: css.label, children: "Filtres" }), kinds.length > 1 && (_jsx(Select, { label: "Type", placeholder: "S\u00E9lectionnez un type", options: kinds, value: data.type, onValueChange: updateField("type"), loading: loading })), filters?.options && filters?.options?.length > 1 && (_jsx(MultipleSelect, { placeholder: "Selectionnez une ou plusieurs options", label: "Options", options: filters.options, values: selectedOptions, onChange: updateFilter("options"), loading: loading })), filters?.districts && filters?.districts?.length > 1 && (_jsx(MultipleSelect, { placeholder: "Selectionnez une ou plusieurs options", label: "Quartiers", options: filters.districts, values: selectedDistricts, onChange: updateFilter("districts"), loading: loading }))] }))] }));
|
|
174
|
+
return (_jsxs(Form, { title: "Presets h\u00E9bergements", width: 580, preset: preset, buttonsActions: { testPreset, cancelPreset, confirmPreset }, children: [_jsx("div", { className: css.label, children: "Nombre de personnes" }), _jsxs("div", { className: css.row, children: [_jsx(NumberPicker, { className: css.peopleInput, label: "Adultes", min: 0, max: 20, value: data.adults, onChange: updateField("adults"), withInput: true }), _jsx(NumberPicker, { className: css.peopleInput, label: "Enfants", min: 0, max: 9, value: data.children, onChange: updateField("children"), withInput: true })] }), _jsx("div", { className: css.label, children: "H\u00E9bergement" }), _jsx(Select, { placeholder: "S\u00E9lectionnez un h\u00E9bergement", options: formattedLodgings, value: data.lodging, onValueChange: updateField("lodging"), loading: loading }), !showFilters && (_jsxs(_Fragment, { children: [_jsx("div", { className: css.label, children: "Chambres" }), (formattedRooms?.length > 0 || loading) && (_jsx(Select, { label: "Type de bien", placeholder: "S\u00E9lectionnez un type de bien", value: data.roomType, options: formattedRooms, onValueChange: updateField("roomType"), loading: loading })), _jsx(NumberPicker, { label: "Nombre de chambres", min: 0, max: 20, value: data.nbRooms?.[0] || 0, onChange: updateRoomNb, withInput: true })] })), showFilters && (_jsxs(_Fragment, { children: [_jsx("div", { className: css.label, children: "Filtres" }), lodgings && (_jsx(MultipleSelect, { label: "Liste de marchands", options: formattedMerchants, values: selectedMerchants, onChange: updateFilter("merchants"), loading: loading, withSearch: true })), (loading || kinds.length > 1) && (_jsx(Select, { label: "Type", placeholder: "S\u00E9lectionnez un type", options: kinds, value: data.type, onValueChange: updateField("type"), loading: loading })), (loading || filters.standings.length >= 1) && (_jsx(MultipleSelect, { placeholder: "Selectionnez une ou plusieurs options", label: "Standing", options: filters.standings, values: selectedStandings, onChange: updateFilter("standings"), loading: loading, withSearch: true })), (loading || filters.options.length >= 1) && (_jsx(MultipleSelect, { placeholder: "Selectionnez une ou plusieurs options", label: "Options", options: filters.options, values: selectedOptions, onChange: updateFilter("options"), loading: loading, withSearch: true })), (loading || filters.districts.length >= 1) && (_jsx(MultipleSelect, { placeholder: "Selectionnez une ou plusieurs options", label: "Quartiers", options: filters.districts, values: selectedDistricts, onChange: updateFilter("districts"), loading: loading, withSearch: true }))] })), _jsx("div", { className: css.label, children: "Avanc\u00E9" }), _jsx(Input, { className: css.input, label: "Filtre", value: data.filter, placeholder: "('10', '22') in options", onValueChange: updateField("filter") })] }));
|
|
164
175
|
}
|
|
165
176
|
function getDefaultData(preset) {
|
|
166
177
|
if (!preset?.presets && !preset?.options)
|
|
167
178
|
return DEFAULT_DATA;
|
|
168
|
-
const { accomodation, nbRooms, options, districts, type } = preset?.presets || {};
|
|
179
|
+
const { merchants, accomodation, nbRooms, standings, options, districts, type, filter, } = preset?.presets || {};
|
|
169
180
|
const { paxPlan, roomType } = preset?.options?.previewDetails || {};
|
|
170
181
|
return {
|
|
171
182
|
adults: paxPlan?.adults || DEFAULT_DATA.adults,
|
|
172
183
|
children: paxPlan?.children || DEFAULT_DATA.children,
|
|
173
184
|
lodging: accomodation || DEFAULT_DATA.lodging,
|
|
185
|
+
merchants: merchants || DEFAULT_DATA.merchants,
|
|
174
186
|
nbRooms: nbRooms || DEFAULT_DATA.nbRooms,
|
|
175
187
|
roomType: roomType || DEFAULT_DATA.roomType,
|
|
188
|
+
standings: standings || DEFAULT_DATA.standings,
|
|
176
189
|
options: options || DEFAULT_DATA.options,
|
|
177
190
|
districts: districts || DEFAULT_DATA.districts,
|
|
178
191
|
type: type || DEFAULT_DATA.type,
|
|
192
|
+
filter: filter || DEFAULT_DATA.filter,
|
|
179
193
|
};
|
|
180
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ski-passes.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/editors/ski-passes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,KAAK,KAAK,GAAG;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5E,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AA4DF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,eAAe,EACf,MAAM,EACN,SAAS,EACT,IAAI,EACJ,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,WAAW,GACZ,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"ski-passes.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/editors/ski-passes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,KAAK,KAAK,GAAG;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5E,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AA4DF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,eAAe,EACf,MAAM,EACN,SAAS,EACT,IAAI,EACJ,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,WAAW,GACZ,EAAE,KAAK,2CAqSP"}
|
|
@@ -116,8 +116,8 @@ export default function SkiPasses({ msemServicesUrl, preset, setPreset, stay, se
|
|
|
116
116
|
updateField("domains")(value);
|
|
117
117
|
};
|
|
118
118
|
const updateSkiers = (code) => (value) => {
|
|
119
|
-
const filteredSkiers = data.skiers.filter((skier) => skier !== code);
|
|
120
|
-
const newSkiers = !value ? [] : new Array(
|
|
119
|
+
const filteredSkiers = data.skiers.filter((skier) => Number(skier) !== Number(code));
|
|
120
|
+
const newSkiers = !value ? [] : new Array(Number(value)).fill(code);
|
|
121
121
|
setData({ ...data, skiers: [...filteredSkiers, ...newSkiers] });
|
|
122
122
|
};
|
|
123
123
|
React.useEffect(() => {
|
|
@@ -142,7 +142,13 @@ export default function SkiPasses({ msemServicesUrl, preset, setPreset, stay, se
|
|
|
142
142
|
const filteredFilters = Object.keys(filters).reduce((acc, key) => {
|
|
143
143
|
const filter = filters[key];
|
|
144
144
|
return ALLOWED_FILTERS.includes(key)
|
|
145
|
-
? {
|
|
145
|
+
? {
|
|
146
|
+
...acc,
|
|
147
|
+
[key]: filter.map((f) => ({
|
|
148
|
+
...f,
|
|
149
|
+
value: f.code,
|
|
150
|
+
})),
|
|
151
|
+
}
|
|
146
152
|
: acc;
|
|
147
153
|
}, {});
|
|
148
154
|
setLoading(false);
|
|
@@ -179,8 +185,9 @@ export default function SkiPasses({ msemServicesUrl, preset, setPreset, stay, se
|
|
|
179
185
|
}, children: [_jsx(Select, { label: "Catalogue", value: catalog, options: catalogs ? ["", ...catalogs] : [], onValueChange: setCatalog, loading: !isReady }), loading && _jsx(Loader, { className: css.loader }), hasCatalog && (_jsxs(_Fragment, { children: [_jsx(Input, { type: "date", label: "1er jour", value: data.firstSkiDate, onValueChange: updateFirstSkiDate, defaultMonth: firstSkiDateDefaultMonth, min: stay?.from || undefined, max: stay?.to || undefined }), filters?.skiers && filters?.skiers?.length > 1 && (_jsxs("div", { className: css.skiers, children: [_jsx("div", { className: css.label, children: "Skieurs" }), filters.skiers.map((skier) => {
|
|
180
186
|
const { code, label, ageMin, ageMax } = skier;
|
|
181
187
|
const title = `${label} (de ${ageMin} à ${ageMax} ans)`;
|
|
182
|
-
const value = data.skiers?.filter((skier) => skier === code)
|
|
183
|
-
|
|
188
|
+
const value = data.skiers?.filter((skier) => skier === code)
|
|
189
|
+
?.length || 0;
|
|
190
|
+
return (_jsx(NumberPicker, { label: title, min: 0, max: 20, value: value, disabled: false, onChange: updateSkiers(Number(code)), withInput: true }, code));
|
|
184
191
|
})] })), _jsx("div", { className: css.label, children: "Filtres" }), (activities?.length > 0 || loading) && (_jsx(MutlipleSelect, { label: "Activit\u00E9s", placeholder: "Selectionnez une ou plusieurs options", options: activities, values: selectedActivities, onChange: updateField("activities"), loading: loading })), _jsxs("div", { className: css.row, children: [((filteredDomains && filteredDomains.length > 0) || loading) && (_jsx(MutlipleSelect, { label: "Domaines", placeholder: "Selectionnez une ou plusieurs options", options: filteredDomains || [], values: selectedDomains, onChange: updateDomains, loading: loading })), ((filteredDurations && filteredDurations?.length > 0) ||
|
|
185
192
|
loading) && (_jsx(MutlipleSelect, { label: "Dur\u00E9es", placeholder: "Selectionnez une ou plusieurs options", options: filteredDurations || [], values: selectedDurations, onChange: updateField("durations"), disabled: data.domains?.length === 0, loading: loading }))] })] }))] }));
|
|
186
193
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
type Props = {
|
|
3
|
+
msemServicesUrl: string;
|
|
4
|
+
stay: {
|
|
5
|
+
from: string;
|
|
6
|
+
to: string;
|
|
7
|
+
};
|
|
8
|
+
facet: string;
|
|
9
|
+
preset: Record<string, any> | null;
|
|
10
|
+
setPreset: React.Dispatch<React.SetStateAction<Record<string, any> | null>>;
|
|
11
|
+
setShowPresetDialog: React.Dispatch<React.SetStateAction<boolean>>;
|
|
12
|
+
onChange?: (preset: Record<string, any> | null) => void;
|
|
13
|
+
testPreset: () => void;
|
|
14
|
+
};
|
|
15
|
+
export default function SkiRental({ msemServicesUrl, preset, setPreset, setShowPresetDialog, onChange, testPreset, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=ski-rental.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ski-rental.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/editors/ski-rental.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,KAAK,GAAG;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5E,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAcF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,eAAe,EACf,MAAM,EACN,SAAS,EAET,mBAAmB,EACnB,QAAQ,EACR,UAAU,GACX,EAAE,KAAK,2CAyFP"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import MultipleSelect from "dt-design-system/es/multiple-select";
|
|
4
|
+
import Form from "../components/form";
|
|
5
|
+
import * as API from "../services/api";
|
|
6
|
+
const DEFAULT_LISTING_DATA = {
|
|
7
|
+
merchants: [],
|
|
8
|
+
};
|
|
9
|
+
const DEFAULT_DATA = {
|
|
10
|
+
duration: null,
|
|
11
|
+
rentFrom: "",
|
|
12
|
+
activity: "",
|
|
13
|
+
level: "",
|
|
14
|
+
productId: null,
|
|
15
|
+
};
|
|
16
|
+
export default function SkiRental({ msemServicesUrl, preset, setPreset, setShowPresetDialog, onChange, testPreset, }) {
|
|
17
|
+
const savedPreset = React.useRef(preset);
|
|
18
|
+
const { channel, resort, merchant } = preset?.options;
|
|
19
|
+
const mode = merchant === undefined ? "LISTING" : "MERCHANT";
|
|
20
|
+
const [loading, setLoading] = React.useState(false);
|
|
21
|
+
const [merchantList, setMerchantList] = React.useState([]);
|
|
22
|
+
const [merchants, setMerchants] = React.useState(getDefaultData(preset, mode));
|
|
23
|
+
const formattedMerchants = merchantList.map(({ name, code }) => {
|
|
24
|
+
return { label: name, value: code };
|
|
25
|
+
});
|
|
26
|
+
const cancelPreset = () => {
|
|
27
|
+
setPreset(savedPreset.current);
|
|
28
|
+
setShowPresetDialog(false);
|
|
29
|
+
};
|
|
30
|
+
const confirmPreset = () => {
|
|
31
|
+
setShowPresetDialog(false);
|
|
32
|
+
};
|
|
33
|
+
const updateMerchants = (newValue) => {
|
|
34
|
+
setMerchants(newValue.map((v) => v.value));
|
|
35
|
+
};
|
|
36
|
+
React.useEffect(() => {
|
|
37
|
+
const runEffect = async () => {
|
|
38
|
+
try {
|
|
39
|
+
setLoading(true);
|
|
40
|
+
const renters = await API.getRenterList(msemServicesUrl, channel, resort);
|
|
41
|
+
setMerchantList(renters);
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
console.error(e);
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
setLoading(false);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
runEffect();
|
|
51
|
+
}, []);
|
|
52
|
+
React.useEffect(() => {
|
|
53
|
+
setPreset((current = {}) => {
|
|
54
|
+
const newPreset = {
|
|
55
|
+
...current,
|
|
56
|
+
presets: {
|
|
57
|
+
...(current?.presets || {}),
|
|
58
|
+
merchants,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
onChange?.(newPreset);
|
|
62
|
+
return newPreset;
|
|
63
|
+
});
|
|
64
|
+
}, [onChange, merchants, setPreset]);
|
|
65
|
+
const selectedMerchants = merchants?.map((merchant) => formattedMerchants.find((d) => d.value === merchant));
|
|
66
|
+
return (_jsx(Form, { title: "Presets loueurs de mat\u00E9riel", width: 420, preset: preset, buttonsActions: {
|
|
67
|
+
testPreset,
|
|
68
|
+
cancelPreset,
|
|
69
|
+
confirmPreset: merchants?.length ? confirmPreset : undefined,
|
|
70
|
+
}, children: mode === "LISTING" && merchantList?.length > 0 && (_jsx(MultipleSelect, { label: "Liste de marchands", options: formattedMerchants, values: selectedMerchants, onChange: updateMerchants, disabled: loading, withSearch: true })) }));
|
|
71
|
+
}
|
|
72
|
+
function getDefaultData(preset, mode) {
|
|
73
|
+
if (mode === "LISTING") {
|
|
74
|
+
if (!preset?.presets)
|
|
75
|
+
return DEFAULT_LISTING_DATA.merchants;
|
|
76
|
+
const { merchants } = preset.presets;
|
|
77
|
+
return merchants || DEFAULT_LISTING_DATA.merchants;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
if (!preset?.presets)
|
|
81
|
+
return DEFAULT_DATA;
|
|
82
|
+
const { duration, rentFrom, activity, level, productId } = preset.presets;
|
|
83
|
+
return {
|
|
84
|
+
duration: duration || DEFAULT_DATA.duration,
|
|
85
|
+
rentFrom: rentFrom || DEFAULT_DATA.rentFrom,
|
|
86
|
+
activity: activity || DEFAULT_DATA.activity,
|
|
87
|
+
level: level || DEFAULT_DATA.level,
|
|
88
|
+
productId: productId || DEFAULT_DATA.productId,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"msem-preset-editor.d.ts","sourceRoot":"","sources":["../../../../src/future/components/msem-preset-editor/msem-preset-editor.tsx"],"names":[],"mappings":"AAmBA,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,eAAe,EACf,WAAW,EACX,OAAO,EACP,aAAa,EACb,QAAQ,GACT,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"msem-preset-editor.d.ts","sourceRoot":"","sources":["../../../../src/future/components/msem-preset-editor/msem-preset-editor.tsx"],"names":[],"mappings":"AAmBA,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,eAAe,EACf,WAAW,EACX,OAAO,EACP,aAAa,EACb,QAAQ,GACT,EAAE,KAAK,2CAiNP"}
|
|
@@ -60,7 +60,7 @@ export default function MseMPresetEditor({ lang, channel, resort, msemServicesUr
|
|
|
60
60
|
onChange?.(null);
|
|
61
61
|
setPreset(null);
|
|
62
62
|
}, [onChange]);
|
|
63
|
-
const testPreset = () => {
|
|
63
|
+
const testPreset = React.useCallback(() => {
|
|
64
64
|
if (!preset)
|
|
65
65
|
return;
|
|
66
66
|
const storageKeysToRemove = [
|
|
@@ -72,7 +72,7 @@ export default function MseMPresetEditor({ lang, channel, resort, msemServicesUr
|
|
|
72
72
|
});
|
|
73
73
|
const { widget, options, presets } = preset;
|
|
74
74
|
MseM.loadWidget(widget, options, presets);
|
|
75
|
-
};
|
|
75
|
+
}, [preset]);
|
|
76
76
|
const copyUrl = (e) => {
|
|
77
77
|
e.preventDefault();
|
|
78
78
|
const field = e.target;
|
|
@@ -111,5 +111,5 @@ export default function MseMPresetEditor({ lang, channel, resort, msemServicesUr
|
|
|
111
111
|
});
|
|
112
112
|
return (_jsxs("div", { className: css.editor, children: [resorts && (_jsx(ResortSelector, { resorts: resorts, resort: selectedResort, setResort: setSelectedResort, removePreset: removePreset })), _jsx(FacetSelector, { facet: facet, setFacet: setFacet, setPreset: setPreset }), _jsx(StayPicker, { stay: stay, setStay: setStay, setPreset: setPreset }), showWidgetList && (_jsx(WidgetList, { lang: lang, msemServicesUrl: msemServicesUrl, resort: selectedResort, channel: channel, facet: facet, preset: preset, updatePreset: updatePreset, removePreset: removePreset, error: error, setError: setError, setShowPresetDialog: setShowPresetDialog })), error && _jsx("div", { className: css.error, children: error }), _jsxs("div", { className: footerClasses, children: [showPresetUrl ? (_jsx(Tooltip, { content: "Tester dans le widget MseM", children: _jsx(Button, { variant: "secondary", disabled: !preset?.widget, className: css.testButton, onClick: testPreset, children: _jsx(Icons.OpenInBrowser, {}) }) })) : (_jsxs(Button, { variant: "secondary", disabled: !preset?.widget, className: css.testButton, onClick: testPreset, children: [_jsx(Icons.OpenInBrowser, {}), "Tester dans le widget MseM"] })), showPresetUrl && (_jsx(Input, { type: "text", className: css.url, value: presetUrl, onClick: copyUrl, placeholder: !preset
|
|
113
113
|
? "Aucun preset sélectionné"
|
|
114
|
-
: "Preset incompatible au format URL", readOnly: true }))] }), _jsx(Dialog, {
|
|
114
|
+
: "Preset incompatible au format URL", readOnly: true }))] }), _jsx(Dialog, { isOpened: showPresetDialog, close: () => setShowPresetDialog(false), closeButtonVariant: "transparent", showAsModal: false, children: showPresetDialog && (_jsx(CurrentEditor, { msemServicesUrl: msemServicesUrl, stay: stay, facet: facet, preset: preset, setPreset: setPreset, setShowPresetDialog: setShowPresetDialog, testPreset: testPreset, onChange: onChange, urlOverride: urlOverride })) })] }));
|
|
115
115
|
}
|
|
@@ -12,4 +12,5 @@ export declare function getVakarioAges(msemServicesUrl: string, channel: string,
|
|
|
12
12
|
export declare function getVakarioCategories(msemServicesUrl: string, channel: string, merchant: string, kind: string, age: string, language?: string): Promise<any>;
|
|
13
13
|
export declare function getVakarioLevels(msemServicesUrl: string, channel: string, merchant: string, kind: string, age: string, category: string, language?: string): Promise<any>;
|
|
14
14
|
export declare function getOtherProductsCategories(msemServicesUrl: string, facet: string, merchant: string, lang?: string): Promise<any>;
|
|
15
|
+
export declare function getRenterList(msemServicesUrl: string, channel: string, resort: number | string, date?: string): Promise<any>;
|
|
15
16
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/services/api.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS,CACvB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,KAAK,EAAE,MAAM,gBAId;AAWD,wBAAsB,cAAc,CAClC,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,gBAMb;AAED,wBAAsB,UAAU,CAC9B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,MAAM,gBAIxB;AAED,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,gBAIjB;AAED,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,gBAIhB;AAGD,wBAAsB,WAAW,CAC/B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,gBAIf;AAED,wBAAsB,iBAAiB,CACrC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,SAAO,gBAIhB;AAED,wBAAsB,eAAe,CACnC,eAAe,EAAE,MAAM,EACvB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,SAAO,EACf,OAAO,UAAQ,gBAIhB;AAED,wBAAsB,eAAe,CACnC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAO,gBAIhB;AAED,wBAAsB,eAAe,CACnC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAO,gBAIhB;AAED,wBAAsB,cAAc,CAClC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAO,gBAIhB;AAED,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,QAAQ,SAAO,gBAIhB;AAED,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAO,gBAIhB;AAED,wBAAsB,0BAA0B,CAC9C,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,SAAO,gBAIZ"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/services/api.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS,CACvB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,KAAK,EAAE,MAAM,gBAId;AAWD,wBAAsB,cAAc,CAClC,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,gBAMb;AAED,wBAAsB,UAAU,CAC9B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,MAAM,gBAIxB;AAED,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,gBAIjB;AAED,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,gBAIhB;AAGD,wBAAsB,WAAW,CAC/B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,gBAIf;AAED,wBAAsB,iBAAiB,CACrC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,SAAO,gBAIhB;AAED,wBAAsB,eAAe,CACnC,eAAe,EAAE,MAAM,EACvB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,SAAO,EACf,OAAO,UAAQ,gBAIhB;AAED,wBAAsB,eAAe,CACnC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAO,gBAIhB;AAED,wBAAsB,eAAe,CACnC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAO,gBAIhB;AAED,wBAAsB,cAAc,CAClC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAO,gBAIhB;AAED,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,QAAQ,SAAO,gBAIhB;AAED,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAO,gBAIhB;AAED,wBAAsB,0BAA0B,CAC9C,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,SAAO,gBAIZ;AAED,wBAAsB,aAAa,CACjC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,IAAI,CAAC,EAAE,MAAM,gBAId"}
|
|
@@ -66,3 +66,7 @@ export async function getOtherProductsCategories(msemServicesUrl, facet, merchan
|
|
|
66
66
|
const endpoint = `${msemServicesUrl}/api/standard-product/merchant/${merchant}`;
|
|
67
67
|
return Fetcher.post(endpoint, { facet: Number(facet), lang });
|
|
68
68
|
}
|
|
69
|
+
export async function getRenterList(msemServicesUrl, channel, resort, date) {
|
|
70
|
+
const endpoint = `${msemServicesUrl}/api/ski-rental/${resort}/renters`;
|
|
71
|
+
return Fetcher.post(endpoint, { channel, date });
|
|
72
|
+
}
|
|
@@ -19,5 +19,16 @@ export type OtherOffer = {
|
|
|
19
19
|
};
|
|
20
20
|
widget: string;
|
|
21
21
|
};
|
|
22
|
-
export declare function get(msemServicesUrl: string, lang: "fr" | "en", channel: string, resort: number | string, facet: string): Promise<
|
|
22
|
+
export declare function get(msemServicesUrl: string, lang: "fr" | "en", channel: string, resort: number | string, facet: string): Promise<(Offer | {
|
|
23
|
+
items: any;
|
|
24
|
+
kind: string;
|
|
25
|
+
category: string;
|
|
26
|
+
image: string;
|
|
27
|
+
logo: string;
|
|
28
|
+
name: string;
|
|
29
|
+
options: Record<string, any>;
|
|
30
|
+
preset: Record<string, any>;
|
|
31
|
+
presets: Record<string, any>;
|
|
32
|
+
widget: string;
|
|
33
|
+
})[]>;
|
|
23
34
|
//# sourceMappingURL=offers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/services/offers.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,GAAG,CACvB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,KAAK,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/services/offers.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,GAAG,CACvB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,KAAK,EAAE,MAAM;;;;;;;;;;;MAqDd"}
|
|
@@ -78,8 +78,6 @@
|
|
|
78
78
|
--ds-shadow-300: var(--ublo-shadow-300, 0 5px 10px rgba(0, 0, 0, 0.24));
|
|
79
79
|
--ds-shadow-400: var(--ublo-shadow-300, 0 5px 10px rgba(0, 0, 0, 0.24));
|
|
80
80
|
|
|
81
|
-
--ds-floating-z-index: 1000;
|
|
82
|
-
|
|
83
81
|
--ds-button-background: var(--ublo-secondary-color, #4177f6);
|
|
84
82
|
--ds-button-hover-background: var(--ublo-primary-color, #073ff8);
|
|
85
83
|
--ds-button-padding: 10px;
|
|
@@ -3,7 +3,7 @@ import { useUbloContext } from "ublo/with-ublo";
|
|
|
3
3
|
import * as UrlParameters from "../utils/url-parameters";
|
|
4
4
|
import * as MseM from "../components/msem";
|
|
5
5
|
const PRESET_ATTRIBUTE = "data-msem-preset";
|
|
6
|
-
export default function
|
|
6
|
+
export default function useMseMPresets({ defaultOptions }) {
|
|
7
7
|
const { lang, cmsMode, path } = useUbloContext();
|
|
8
8
|
const widgetLang = lang === "fr" ? "fr" : "en";
|
|
9
9
|
const isEnabled = cmsMode !== "editing" && cmsMode !== "info";
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ublo-lib",
|
|
3
|
-
"version": "1.38.
|
|
3
|
+
"version": "1.38.15",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"dt-design-system": "^3.
|
|
5
|
+
"dt-design-system": "^3.10.8",
|
|
6
6
|
"leaflet": "^1.9.1",
|
|
7
7
|
"next": "^12.0.0 || ^13.0.0 || ^14.0.0",
|
|
8
8
|
"react": "^18.2.0",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@typescript-eslint/parser": "7.6.0",
|
|
37
37
|
"classnames": "2.5.1",
|
|
38
38
|
"cpx2": "7.0.1",
|
|
39
|
-
"dt-design-system": "3.
|
|
39
|
+
"dt-design-system": "3.10.8",
|
|
40
40
|
"eslint": "8.57.0",
|
|
41
41
|
"eslint-plugin-react": "7.34.1",
|
|
42
42
|
"eslint-plugin-react-hooks": "4.6.0",
|