ublo-lib 1.38.13 → 1.38.14
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 +29 -17
- 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,2CAyTP"}
|
|
@@ -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
|
}
|
|
@@ -109,6 +117,13 @@ export default function Lodgings({ msemServicesUrl, preset, setPreset, setShowPr
|
|
|
109
117
|
setRooms(rooms);
|
|
110
118
|
}
|
|
111
119
|
}
|
|
120
|
+
setData((data) => ({
|
|
121
|
+
...data,
|
|
122
|
+
standings: DEFAULT_DATA.standings,
|
|
123
|
+
options: DEFAULT_DATA.options,
|
|
124
|
+
districts: DEFAULT_DATA.districts,
|
|
125
|
+
type: DEFAULT_DATA.type,
|
|
126
|
+
}));
|
|
112
127
|
}
|
|
113
128
|
catch (e) {
|
|
114
129
|
console.error(e);
|
|
@@ -116,12 +131,6 @@ export default function Lodgings({ msemServicesUrl, preset, setPreset, setShowPr
|
|
|
116
131
|
finally {
|
|
117
132
|
setLoading(false);
|
|
118
133
|
}
|
|
119
|
-
setData((data) => ({
|
|
120
|
-
...data,
|
|
121
|
-
options: DEFAULT_DATA.options,
|
|
122
|
-
districts: DEFAULT_DATA.districts,
|
|
123
|
-
type: DEFAULT_DATA.type,
|
|
124
|
-
}));
|
|
125
134
|
};
|
|
126
135
|
getRoomTypes();
|
|
127
136
|
}, [data.lodging, facet, lodgings, msemServicesUrl, resort]);
|
|
@@ -130,9 +139,11 @@ export default function Lodgings({ msemServicesUrl, preset, setPreset, setShowPr
|
|
|
130
139
|
const { lodging } = data;
|
|
131
140
|
const adults = parseInt(data.adults);
|
|
132
141
|
const children = parseInt(data.children);
|
|
133
|
-
const accomodation = lodging
|
|
142
|
+
const accomodation = lodging?.length === 1 ? lodging[0] : undefined;
|
|
134
143
|
const agesChildren = [...new Array(children)].map(() => 12);
|
|
135
144
|
const paxPlan = adults ? { adults, children, agesChildren } : undefined;
|
|
145
|
+
const merchants = data.merchants?.length ? data.merchants : undefined;
|
|
146
|
+
const standings = data.standings?.length ? data.standings : undefined;
|
|
136
147
|
const options = data.options?.length ? data.options : undefined;
|
|
137
148
|
const districts = data.districts?.length ? data.districts : undefined;
|
|
138
149
|
const type = data.type || undefined;
|
|
@@ -140,7 +151,9 @@ export default function Lodgings({ msemServicesUrl, preset, setPreset, setShowPr
|
|
|
140
151
|
const nbRooms = data.nbRooms[0] > 0 ? data.nbRooms : undefined;
|
|
141
152
|
const previewDetails = { paxPlan, roomType };
|
|
142
153
|
const presets = {
|
|
154
|
+
merchants,
|
|
143
155
|
accomodation,
|
|
156
|
+
standings,
|
|
144
157
|
options,
|
|
145
158
|
districts,
|
|
146
159
|
nbRooms,
|
|
@@ -156,25 +169,24 @@ export default function Lodgings({ msemServicesUrl, preset, setPreset, setShowPr
|
|
|
156
169
|
return newPreset;
|
|
157
170
|
});
|
|
158
171
|
}, [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 }))] }))] }));
|
|
172
|
+
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
173
|
}
|
|
165
174
|
function getDefaultData(preset) {
|
|
166
175
|
if (!preset?.presets && !preset?.options)
|
|
167
176
|
return DEFAULT_DATA;
|
|
168
|
-
const { accomodation, nbRooms, options, districts, type } = preset?.presets || {};
|
|
177
|
+
const { merchants, accomodation, nbRooms, standings, options, districts, type, filter, } = preset?.presets || {};
|
|
169
178
|
const { paxPlan, roomType } = preset?.options?.previewDetails || {};
|
|
170
179
|
return {
|
|
171
180
|
adults: paxPlan?.adults || DEFAULT_DATA.adults,
|
|
172
181
|
children: paxPlan?.children || DEFAULT_DATA.children,
|
|
173
182
|
lodging: accomodation || DEFAULT_DATA.lodging,
|
|
183
|
+
merchants: merchants || DEFAULT_DATA.merchants,
|
|
174
184
|
nbRooms: nbRooms || DEFAULT_DATA.nbRooms,
|
|
175
185
|
roomType: roomType || DEFAULT_DATA.roomType,
|
|
186
|
+
standings: standings || DEFAULT_DATA.standings,
|
|
176
187
|
options: options || DEFAULT_DATA.options,
|
|
177
188
|
districts: districts || DEFAULT_DATA.districts,
|
|
178
189
|
type: type || DEFAULT_DATA.type,
|
|
190
|
+
filter: filter || DEFAULT_DATA.filter,
|
|
179
191
|
};
|
|
180
192
|
}
|
|
@@ -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.14",
|
|
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",
|