ublo-lib 1.38.15 → 1.38.17
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/stay-picker.d.ts.map +1 -1
- package/es/future/components/msem-preset-editor/components/stay-picker.js +1 -1
- package/es/future/components/msem-preset-editor/components/stay-picker.module.css +4 -0
- 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 +34 -26
- package/es/future/components/msem-preset-editor/components/widget-list-item.module.css +43 -28
- package/es/future/components/msem-preset-editor/components/widget-list.js +1 -1
- package/es/future/components/msem-preset-editor/components/widget-list.module.css +5 -4
- package/es/future/components/msem-preset-editor/editors/esf.d.ts +16 -0
- package/es/future/components/msem-preset-editor/editors/esf.d.ts.map +1 -0
- package/es/future/components/msem-preset-editor/editors/esf.js +120 -0
- 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.js +1 -1
- package/es/future/components/msem-preset-editor/msem-preset-editor.d.ts +2 -1
- 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 +2 -3
- package/es/future/components/msem-preset-editor/msem-preset-editor.module.css +0 -1
- 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 +12 -0
- package/es/future/components/msem-preset-linker/msem-preset-linker.d.ts +2 -1
- package/es/future/components/msem-preset-linker/msem-preset-linker.d.ts.map +1 -1
- package/es/future/components/msem-preset-linker/msem-preset-linker.js +2 -2
- package/es/future/components/msem-preset-linker/msem-preset-linker.module.css +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stay-picker.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/components/stay-picker.tsx"],"names":[],"mappings":"AAIA,KAAK,KAAK,GAAG;IACX,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACtD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"stay-picker.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/components/stay-picker.tsx"],"names":[],"mappings":"AAIA,KAAK,KAAK,GAAG;IACX,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACtD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,2CAmD1D"}
|
|
@@ -31,5 +31,5 @@ export default function StayPicker({ stay, setStay }) {
|
|
|
31
31
|
}
|
|
32
32
|
setStay({ ...stay, [key]: value });
|
|
33
33
|
};
|
|
34
|
-
return (_jsxs("div", { className: css.picker, children: [_jsx(Input, { type: "date", label: "Date de d\u00E9but", value: stay.from, onValueChange: updateStay("from") }), _jsx(Input, { type: "date", label: "Date de fin", value: stay.to, onValueChange: updateStay("to") })] }));
|
|
34
|
+
return (_jsxs("div", { className: css.picker, children: [_jsx(Input, { className: css.input, type: "date", label: "Date de d\u00E9but", value: stay.from, onValueChange: updateStay("from") }), _jsx(Input, { className: css.input, type: "date", label: "Date de fin", value: stay.to, onValueChange: updateStay("to") })] }));
|
|
35
35
|
}
|
|
@@ -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;
|
|
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;AAM/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;AAYF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,GACpB,EAAE,KAAK,2CAqKP"}
|
|
@@ -3,6 +3,7 @@ import * as React from "react";
|
|
|
3
3
|
import classNames from "classnames";
|
|
4
4
|
import Button from "dt-design-system/es/button";
|
|
5
5
|
import Tooltip from "dt-design-system/es/tooltip";
|
|
6
|
+
import Dropdown from "dt-design-system/es/dropdown";
|
|
6
7
|
import * as Icons from "dt-design-system/es/icons";
|
|
7
8
|
import css from "./widget-list-item.module.css";
|
|
8
9
|
const ALLOW_PRESETS_ON_WIDGETS = [
|
|
@@ -12,46 +13,53 @@ const ALLOW_PRESETS_ON_WIDGETS = [
|
|
|
12
13
|
"elloha",
|
|
13
14
|
"vakario",
|
|
14
15
|
"skiRental",
|
|
16
|
+
"esf",
|
|
15
17
|
];
|
|
16
18
|
export default function WidgetListItem({ item, preset, updatePreset, removePreset, setShowPresetDialog, }) {
|
|
17
|
-
const [opened, setOpened] = React.useState(false);
|
|
18
19
|
const { widget, logo, name, items: subs } = item;
|
|
19
|
-
const toggleItem = () => {
|
|
20
|
-
setOpened(!opened);
|
|
21
|
-
};
|
|
22
|
-
const ToggleIcon = opened ? Icons.ChevronUp : Icons.ChevronDown;
|
|
23
20
|
const isSelected = preset?.name === name && preset?.widget === widget;
|
|
21
|
+
const hasSubsSelected = subs?.some((sub) => preset?.name === sub.name && preset?.widget === sub.widget) || false;
|
|
22
|
+
const [opened, setOpened] = React.useState(isSelected || hasSubsSelected);
|
|
23
|
+
const ToggleIcon = opened ? Icons.ChevronUp : Icons.ChevronDown;
|
|
24
24
|
const hasSubs = subs && subs.length > 0;
|
|
25
25
|
const allowAdvancedPresets = ALLOW_PRESETS_ON_WIDGETS.includes(widget);
|
|
26
26
|
const showEditButton = isSelected && allowAdvancedPresets;
|
|
27
27
|
const showRemoveButton = isSelected;
|
|
28
|
+
const openDropdown = () => {
|
|
29
|
+
if (opened)
|
|
30
|
+
return;
|
|
31
|
+
setOpened(true);
|
|
32
|
+
};
|
|
33
|
+
const closeDropdown = () => {
|
|
34
|
+
setOpened(false);
|
|
35
|
+
};
|
|
28
36
|
const classes = classNames(css.item, {
|
|
29
37
|
[css.selected]: isSelected,
|
|
30
38
|
[css.opened]: opened,
|
|
31
39
|
});
|
|
32
40
|
const handleItemClick = () => {
|
|
33
|
-
if (!isSelected) {
|
|
41
|
+
if (widget && !isSelected) {
|
|
34
42
|
updatePreset(item);
|
|
35
43
|
}
|
|
36
44
|
};
|
|
37
|
-
return (_jsxs("div", { className: classes, children: [_jsxs(Button, { variant: "transparent", className: css.button, onClick: handleItemClick, children: [_jsx("div", { className: css.logo, children: _jsx("img", { src: logo, alt: name }) }), _jsx("div", { className: css.name, children: name })] }), (hasSubs || showEditButton || showRemoveButton) && (_jsxs("div", { className: css.actions, children: [showEditButton && (_jsx(Tooltip, { content: "
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
45
|
+
return (_jsxs("div", { className: classes, children: [_jsxs(Button, { variant: "transparent", className: css.button, onClick: handleItemClick, disabled: !widget, children: [_jsx("div", { className: css.logo, children: _jsx("img", { src: logo, alt: name }) }), _jsx("div", { className: css.name, children: name })] }), (hasSubs || showEditButton || showRemoveButton) && (_jsxs("div", { className: css.actions, children: [showEditButton && (_jsx(Tooltip, { content: "Affiner le preset", children: _jsx(Button, { variant: "primary", className: css.action, onClick: () => setShowPresetDialog(true), compact: true, children: _jsx(Icons.Edit, {}) }) })), showRemoveButton && (_jsx(Tooltip, { content: "Supprimer le preset", children: _jsx(Button, { variant: "danger", className: css.action, onClick: removePreset, compact: true, children: _jsx(Icons.Trash, {}) }) })), hasSubs && (_jsx(Dropdown, { breakpoint: 600, onClose: closeDropdown, open: opened, className: css.dropdown, title: "Marchands", content: _jsx("div", { className: css.list, children: subs.map((sub) => {
|
|
46
|
+
const isSelected = preset?.name === sub.name;
|
|
47
|
+
const allowedWidgets = [
|
|
48
|
+
"otherProducts",
|
|
49
|
+
...ALLOW_PRESETS_ON_WIDGETS,
|
|
50
|
+
];
|
|
51
|
+
const isSkiRental = widget === "skiRental";
|
|
52
|
+
const allowAdvancedPresets = !isSkiRental && allowedWidgets.includes(sub.widget);
|
|
53
|
+
const showEditButton = isSelected && allowAdvancedPresets;
|
|
54
|
+
const showButtons = showEditButton || isSelected;
|
|
55
|
+
const classes = classNames(css.sub, {
|
|
56
|
+
[css.subSelected]: isSelected,
|
|
57
|
+
});
|
|
58
|
+
const handleSubClick = () => {
|
|
59
|
+
if (!isSelected) {
|
|
60
|
+
updatePreset(item, sub);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
return (_jsxs("div", { className: classes, children: [_jsx(Button, { variant: "transparent", className: css.subButton, onClick: handleSubClick, autoFocus: isSelected ? true : undefined, children: sub.name }), showButtons && (_jsxs("div", { className: css.subActions, children: [showEditButton && (_jsx(Tooltip, { content: "Affiner le preset", children: _jsx(Button, { variant: "primary", className: css.action, onClick: () => setShowPresetDialog(true), compact: true, children: _jsx(Icons.Edit, {}) }) })), isSelected && (_jsx(Tooltip, { content: "Supprimer le preset", children: _jsx(Button, { variant: "danger", className: css.action, onClick: removePreset, compact: true, children: _jsx(Icons.Trash, {}) }) }))] }))] }, sub.name));
|
|
64
|
+
}) }), children: _jsx(Button, { variant: "secondary", className: css.action, onClick: openDropdown, compact: true, children: _jsx(ToggleIcon, {}) }) }))] }))] }));
|
|
57
65
|
}
|
|
@@ -1,29 +1,41 @@
|
|
|
1
1
|
.item {
|
|
2
2
|
position: relative;
|
|
3
3
|
display: flex;
|
|
4
|
-
|
|
4
|
+
justify-content: center;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
.button {
|
|
8
8
|
width: 100%;
|
|
9
|
-
|
|
9
|
+
display: flex;
|
|
10
|
+
flex-direction: column;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: center;
|
|
10
13
|
gap: 10px;
|
|
11
|
-
|
|
12
|
-
text-align: left;
|
|
13
|
-
padding-right: 100px;
|
|
14
|
+
padding-bottom: 35px;
|
|
14
15
|
background-color: var(--ublo-grey-000, #ffffff);
|
|
16
|
+
border: 1px solid var(--ublo-grey-200, #ededed);
|
|
15
17
|
border-radius: var(--ublo-radius-200, 8px);
|
|
16
18
|
transition: 160ms background-color
|
|
17
19
|
var(--ublo-transition-easing, cubic-bezier(0.4, 0, 0.2, 1));
|
|
18
20
|
}
|
|
19
21
|
|
|
22
|
+
.button:disabled {
|
|
23
|
+
filter: none;
|
|
24
|
+
}
|
|
25
|
+
|
|
20
26
|
.selected .button,
|
|
21
27
|
.selected .button:hover {
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
background: var(
|
|
29
|
+
--ublo-blue-gradient,
|
|
30
|
+
linear-gradient(
|
|
31
|
+
175deg,
|
|
32
|
+
var(--ublo-blue-400, #4177f6),
|
|
33
|
+
var(--ublo-blue-500, #004cc2)
|
|
34
|
+
)
|
|
35
|
+
);
|
|
24
36
|
}
|
|
25
37
|
|
|
26
|
-
.item:not(.selected) .button:hover {
|
|
38
|
+
.item:not(.selected) .button:not(:disabled):hover {
|
|
27
39
|
background-color: var(--ublo-grey-100, #f5f5f5);
|
|
28
40
|
}
|
|
29
41
|
|
|
@@ -38,21 +50,13 @@
|
|
|
38
50
|
display: flex;
|
|
39
51
|
align-items: center;
|
|
40
52
|
justify-content: center;
|
|
41
|
-
background: var(
|
|
42
|
-
--ublo-blue-gradient,
|
|
43
|
-
linear-gradient(
|
|
44
|
-
175deg,
|
|
45
|
-
var(--ublo-blue-400, #4177f6),
|
|
46
|
-
var(--ublo-blue-500, #004cc2)
|
|
47
|
-
)
|
|
48
|
-
);
|
|
53
|
+
background-color: var(--ublo-grey-200, #ededed);
|
|
49
54
|
border-radius: var(--ublo-radius-200, 8px);
|
|
50
55
|
}
|
|
51
56
|
|
|
52
57
|
.logo img {
|
|
53
58
|
width: 24px;
|
|
54
59
|
height: 24px;
|
|
55
|
-
filter: brightness(0) invert(1);
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
.name {
|
|
@@ -60,29 +64,32 @@
|
|
|
60
64
|
}
|
|
61
65
|
|
|
62
66
|
.selected .name {
|
|
63
|
-
color: var(--ublo-
|
|
67
|
+
color: var(--ublo-grey-000, #ffffff);
|
|
64
68
|
}
|
|
65
69
|
|
|
66
70
|
.actions {
|
|
67
71
|
position: absolute;
|
|
68
|
-
|
|
69
|
-
|
|
72
|
+
bottom: 10px;
|
|
73
|
+
left: 50%;
|
|
70
74
|
display: flex;
|
|
71
75
|
gap: 4px;
|
|
76
|
+
transform: translateX(-50%);
|
|
72
77
|
}
|
|
73
78
|
|
|
74
79
|
.action {
|
|
75
80
|
border-radius: var(--ublo-radius-100, 3px);
|
|
76
81
|
}
|
|
77
82
|
|
|
83
|
+
.dropdown {
|
|
84
|
+
padding: 0;
|
|
85
|
+
}
|
|
86
|
+
|
|
78
87
|
.list {
|
|
79
|
-
|
|
80
|
-
max-height: 140px;
|
|
88
|
+
max-height: 40vh;
|
|
81
89
|
display: flex;
|
|
82
90
|
flex-direction: column;
|
|
83
|
-
|
|
84
|
-
padding:
|
|
85
|
-
border-left: 3px solid var(--ublo-grey-200, #ededed);
|
|
91
|
+
gap: 4px;
|
|
92
|
+
padding: 6px;
|
|
86
93
|
overflow: auto;
|
|
87
94
|
overscroll-behavior: contain;
|
|
88
95
|
scrollbar-width: thin;
|
|
@@ -115,13 +122,21 @@
|
|
|
115
122
|
|
|
116
123
|
.subSelected .subButton,
|
|
117
124
|
.subSelected .subButton:hover {
|
|
118
|
-
color: var(--ublo-
|
|
119
|
-
background
|
|
125
|
+
color: var(--ublo-grey-000, #ffffff);
|
|
126
|
+
background: var(
|
|
127
|
+
--ublo-blue-gradient,
|
|
128
|
+
linear-gradient(
|
|
129
|
+
175deg,
|
|
130
|
+
var(--ublo-blue-400, #4177f6),
|
|
131
|
+
var(--ublo-blue-500, #004cc2)
|
|
132
|
+
)
|
|
133
|
+
);
|
|
120
134
|
}
|
|
121
135
|
|
|
122
|
-
.
|
|
136
|
+
.sub:not(.subSelected) .subButton:hover {
|
|
123
137
|
background-color: var(--ublo-grey-100, #f5f5f5);
|
|
124
138
|
}
|
|
139
|
+
|
|
125
140
|
.subActions {
|
|
126
141
|
position: absolute;
|
|
127
142
|
top: 50%;
|
|
@@ -29,7 +29,7 @@ export default function WidgetList({ lang, msemServicesUrl, channel, resort, fac
|
|
|
29
29
|
runEffect();
|
|
30
30
|
}, [channel, facet, lang, msemServicesUrl, resort, setError]);
|
|
31
31
|
return (_jsxs("div", { className: css.list, children: [loading &&
|
|
32
|
-
[...new Array(
|
|
32
|
+
[...new Array(5)].map((_, i) => {
|
|
33
33
|
return _jsx(Loader, { className: css.loader, variant: "overlay" }, i);
|
|
34
34
|
}), offers?.length === 0 && !loading && (_jsx("div", { className: css.empty, children: "Aucun widget disponible" })), offers?.map((offer, i) => {
|
|
35
35
|
return (_jsx(WidgetListItem, { item: offer, preset: preset, updatePreset: updatePreset, removePreset: removePreset, setShowPresetDialog: setShowPresetDialog }, i));
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
.list {
|
|
2
|
-
display:
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
display: grid;
|
|
3
|
+
grid-template-columns: repeat(auto-fit, 160px);
|
|
4
|
+
justify-content: center;
|
|
5
|
+
gap: 12px;
|
|
5
6
|
}
|
|
6
7
|
|
|
7
8
|
div.loader {
|
|
8
9
|
position: relative;
|
|
9
10
|
width: 100%;
|
|
10
|
-
height:
|
|
11
|
+
height: 120px;
|
|
11
12
|
border-radius: var(--ublo-radius-200, 8px);
|
|
12
13
|
}
|
|
13
14
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
type Props = {
|
|
3
|
+
msemServicesUrl: string;
|
|
4
|
+
stay: {
|
|
5
|
+
from: string;
|
|
6
|
+
to: string;
|
|
7
|
+
};
|
|
8
|
+
preset: Record<string, any> | null;
|
|
9
|
+
setPreset: React.Dispatch<React.SetStateAction<Record<string, any> | null>>;
|
|
10
|
+
setShowPresetDialog: React.Dispatch<React.SetStateAction<boolean>>;
|
|
11
|
+
onChange?: (preset: Record<string, any> | null) => void;
|
|
12
|
+
testPreset: () => void;
|
|
13
|
+
};
|
|
14
|
+
export default function Esf({ msemServicesUrl, preset, setPreset, setShowPresetDialog, onChange, testPreset, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=esf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esf.d.ts","sourceRoot":"","sources":["../../../../../src/future/components/msem-preset-editor/editors/esf.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/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;CACxB,CAAC;AAeF,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAC1B,eAAe,EACf,MAAM,EACN,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,UAAU,GACX,EAAE,KAAK,2CA0HP"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import Input from "dt-design-system/es/input";
|
|
4
|
+
import Select from "dt-design-system/es/select";
|
|
5
|
+
import Form from "../components/form";
|
|
6
|
+
import * as API from "../services/api";
|
|
7
|
+
const DEFAULT_DATA = {
|
|
8
|
+
intermediary: "",
|
|
9
|
+
kind: "",
|
|
10
|
+
};
|
|
11
|
+
export default function Esf({ msemServicesUrl, preset, setPreset, setShowPresetDialog, onChange, testPreset, }) {
|
|
12
|
+
const savedPreset = React.useRef(preset);
|
|
13
|
+
const [loading, setLoading] = React.useState(false);
|
|
14
|
+
const [data, setData] = React.useState(getDefaultData(preset));
|
|
15
|
+
const [kindList, setKindList] = React.useState([]);
|
|
16
|
+
const formattedKindList = kindList.map((k) => {
|
|
17
|
+
const isEngagement = k.engagement;
|
|
18
|
+
const label = isEngagement
|
|
19
|
+
? `${k.normalizedCode} - ${k.name} (engagement)`
|
|
20
|
+
: `${k.normalizedCode} - ${k.name}`;
|
|
21
|
+
const value = `${k.code}|${k.engagement}`;
|
|
22
|
+
return { label, value };
|
|
23
|
+
});
|
|
24
|
+
const selectedKind = kindList.find((k) => {
|
|
25
|
+
const [code, engagement] = data.kind.split("|");
|
|
26
|
+
if (engagement === "true") {
|
|
27
|
+
return k.engagement && k.code === code;
|
|
28
|
+
}
|
|
29
|
+
return !k.engagement && k.code === code;
|
|
30
|
+
});
|
|
31
|
+
const { channel, resort, lang } = preset?.options || {};
|
|
32
|
+
const year = getYear();
|
|
33
|
+
const stay = buildStay(year);
|
|
34
|
+
const season = getSeason(year);
|
|
35
|
+
const updateField = (field) => (value) => {
|
|
36
|
+
setData((current) => ({ ...current, [field]: value }));
|
|
37
|
+
};
|
|
38
|
+
const cancelPreset = () => {
|
|
39
|
+
setPreset(savedPreset.current);
|
|
40
|
+
setShowPresetDialog(false);
|
|
41
|
+
};
|
|
42
|
+
const confirmPreset = () => {
|
|
43
|
+
setShowPresetDialog(false);
|
|
44
|
+
};
|
|
45
|
+
React.useEffect(() => {
|
|
46
|
+
if (year && stay) {
|
|
47
|
+
const runEffect = async () => {
|
|
48
|
+
try {
|
|
49
|
+
setLoading(true);
|
|
50
|
+
const result = await API.getEsfKinds(msemServicesUrl, channel, resort, stay.from, stay.to, season, lang);
|
|
51
|
+
if (result.choices) {
|
|
52
|
+
setKindList(result.choices);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
throw new Error("Erreur lors de la récupération des types de cours");
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
console.error(e);
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
setLoading(false);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
runEffect();
|
|
66
|
+
}
|
|
67
|
+
}, []);
|
|
68
|
+
React.useEffect(() => {
|
|
69
|
+
setPreset((current = {}) => {
|
|
70
|
+
const kind = selectedKind?.code;
|
|
71
|
+
const engagement = selectedKind?.engagement ? true : undefined;
|
|
72
|
+
const newPreset = {
|
|
73
|
+
...current,
|
|
74
|
+
presets: {
|
|
75
|
+
...(current?.presets || {}),
|
|
76
|
+
intermediary: data.intermediary || undefined,
|
|
77
|
+
kind,
|
|
78
|
+
engagement,
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
onChange?.(newPreset);
|
|
82
|
+
return newPreset;
|
|
83
|
+
});
|
|
84
|
+
}, [data, onChange, setPreset]);
|
|
85
|
+
return (_jsxs(Form, { title: "Presets cours de ski esf", width: 420, preset: preset, buttonsActions: {
|
|
86
|
+
testPreset,
|
|
87
|
+
cancelPreset,
|
|
88
|
+
confirmPreset: data.intermediary || data.kind ? confirmPreset : undefined,
|
|
89
|
+
}, children: [_jsx(Input, { label: "Code interm\u00E9diaire", value: data.intermediary, onValueChange: updateField("intermediary") }), (loading || formattedKindList.length > 0) && (_jsx(Select, { label: "Type de cours", placeholder: "S\u00E9lectionnez un type de cours", value: data.kind, options: formattedKindList, onValueChange: updateField("kind"), loading: loading }))] }));
|
|
90
|
+
}
|
|
91
|
+
function getDefaultData(preset) {
|
|
92
|
+
if (!preset?.presets)
|
|
93
|
+
return DEFAULT_DATA;
|
|
94
|
+
const { intermediary, kind, engagement } = preset.presets;
|
|
95
|
+
return {
|
|
96
|
+
intermediary: intermediary || DEFAULT_DATA.intermediary,
|
|
97
|
+
kind: kind ? `${kind}|${engagement}` : DEFAULT_DATA.kind,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function getYear() {
|
|
101
|
+
const now = new Date();
|
|
102
|
+
const isAfterMay = now.getMonth() > 4;
|
|
103
|
+
const currentYear = now.getFullYear();
|
|
104
|
+
return isAfterMay ? currentYear : currentYear - 1;
|
|
105
|
+
}
|
|
106
|
+
function getSeason(year) {
|
|
107
|
+
const now = new Date();
|
|
108
|
+
const isAfterMay = now.getMonth() > 4;
|
|
109
|
+
return `${isAfterMay ? year + 1 : year}`;
|
|
110
|
+
}
|
|
111
|
+
function buildStay(year) {
|
|
112
|
+
const christmas = new Date(`${year}-12-25`);
|
|
113
|
+
const closerSaturday = new Date(`${year}-12-${25 - (christmas.getDay() + 1)}`);
|
|
114
|
+
const nextSaturday = new Date(closerSaturday);
|
|
115
|
+
nextSaturday.setDate(closerSaturday.getDate() + 7);
|
|
116
|
+
return {
|
|
117
|
+
from: closerSaturday.toISOString().split("T")[0],
|
|
118
|
+
to: nextSaturday.toISOString().split("T")[0],
|
|
119
|
+
};
|
|
120
|
+
}
|
|
@@ -5,6 +5,7 @@ import Elloha from "./elloha";
|
|
|
5
5
|
import Vakario from "./vakario";
|
|
6
6
|
import StandardProducts from "./standard-products";
|
|
7
7
|
import SkiRental from "./ski-rental";
|
|
8
|
+
import Esf from "./esf";
|
|
8
9
|
declare const Editor: {
|
|
9
10
|
lodging: typeof Lodgings;
|
|
10
11
|
skiPass: typeof SkiPasses;
|
|
@@ -13,6 +14,7 @@ declare const Editor: {
|
|
|
13
14
|
vakario: typeof Vakario;
|
|
14
15
|
otherProducts: typeof StandardProducts;
|
|
15
16
|
skiRental: typeof SkiRental;
|
|
17
|
+
esf: typeof Esf;
|
|
16
18
|
};
|
|
17
19
|
export default Editor;
|
|
18
20
|
//# 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;AACnD,OAAO,SAAS,MAAM,cAAc,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;AACrC,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,QAAA,MAAM,MAAM;;;;;;;;;CASX,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -5,6 +5,7 @@ import Elloha from "./elloha";
|
|
|
5
5
|
import Vakario from "./vakario";
|
|
6
6
|
import StandardProducts from "./standard-products";
|
|
7
7
|
import SkiRental from "./ski-rental";
|
|
8
|
+
import Esf from "./esf";
|
|
8
9
|
const Editor = {
|
|
9
10
|
lodging: Lodgings,
|
|
10
11
|
skiPass: SkiPasses,
|
|
@@ -13,5 +14,6 @@ const Editor = {
|
|
|
13
14
|
vakario: Vakario,
|
|
14
15
|
otherProducts: StandardProducts,
|
|
15
16
|
skiRental: SkiRental,
|
|
17
|
+
esf: Esf,
|
|
16
18
|
};
|
|
17
19
|
export default Editor;
|
|
@@ -171,7 +171,7 @@ export default function Lodgings({ msemServicesUrl, preset, setPreset, setShowPr
|
|
|
171
171
|
return newPreset;
|
|
172
172
|
});
|
|
173
173
|
}, [data, onChange, urlOverride, setPreset]);
|
|
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 }))
|
|
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") })] }))] }));
|
|
175
175
|
}
|
|
176
176
|
function getDefaultData(preset) {
|
|
177
177
|
if (!preset?.presets && !preset?.options)
|
|
@@ -11,7 +11,8 @@ type Props = {
|
|
|
11
11
|
resorts?: Resort[];
|
|
12
12
|
currentPreset?: Record<string, any> | null;
|
|
13
13
|
onChange?: (preset: Record<string, any> | null) => void;
|
|
14
|
+
showUrl?: boolean;
|
|
14
15
|
};
|
|
15
|
-
export default function MseMPresetEditor({ lang, channel, resort, msemServicesUrl, urlOverride, resorts, currentPreset, onChange, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export default function MseMPresetEditor({ lang, channel, resort, msemServicesUrl, urlOverride, resorts, currentPreset, onChange, showUrl, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
16
17
|
export {};
|
|
17
18
|
//# sourceMappingURL=msem-preset-editor.d.ts.map
|
|
@@ -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;
|
|
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;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,eAAe,EACf,WAAW,EACX,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,GACR,EAAE,KAAK,2CA8MP"}
|
|
@@ -15,7 +15,7 @@ import Editors from "./editors";
|
|
|
15
15
|
import * as UrlParams from "./services/url-params";
|
|
16
16
|
import * as Preset from "./services/preset";
|
|
17
17
|
import css from "./msem-preset-editor.module.css";
|
|
18
|
-
export default function MseMPresetEditor({ lang, channel, resort, msemServicesUrl, urlOverride, resorts, currentPreset, onChange, }) {
|
|
18
|
+
export default function MseMPresetEditor({ lang, channel, resort, msemServicesUrl, urlOverride, resorts, currentPreset, onChange, showUrl, }) {
|
|
19
19
|
const defaultResort = Number(currentPreset ? currentPreset.options.resort : resort);
|
|
20
20
|
const [selectedResort, setSelectedResort] = React.useState(defaultResort);
|
|
21
21
|
const [facet, setFacet] = React.useState(currentPreset?.options?.facet?.toString() || "");
|
|
@@ -79,7 +79,6 @@ export default function MseMPresetEditor({ lang, channel, resort, msemServicesUr
|
|
|
79
79
|
const url = field.value;
|
|
80
80
|
field.select();
|
|
81
81
|
navigator.clipboard.writeText(url);
|
|
82
|
-
window.ubloSnackbar("URL copiée dans le presse papier", "success");
|
|
83
82
|
};
|
|
84
83
|
React.useEffect(() => {
|
|
85
84
|
if (stay?.from && stay?.to) {
|
|
@@ -105,7 +104,7 @@ export default function MseMPresetEditor({ lang, channel, resort, msemServicesUr
|
|
|
105
104
|
if (!selectedResort)
|
|
106
105
|
return null;
|
|
107
106
|
const CurrentEditor = preset?.widget && Editors[preset.widget];
|
|
108
|
-
const showPresetUrl = Boolean(preset?.widget && presetUrl !== "");
|
|
107
|
+
const showPresetUrl = showUrl && Boolean(preset?.widget && presetUrl !== "");
|
|
109
108
|
const footerClasses = classNames(css.footer, {
|
|
110
109
|
[css.footerButtonOnly]: !showPresetUrl,
|
|
111
110
|
});
|
|
@@ -13,4 +13,5 @@ export declare function getVakarioCategories(msemServicesUrl: string, channel: s
|
|
|
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
15
|
export declare function getRenterList(msemServicesUrl: string, channel: string, resort: number | string, date?: string): Promise<any>;
|
|
16
|
+
export declare function getEsfKinds(msemServicesUrl: string, channel: string, resort: string, stayFrom: string, stayTo: string, season: string, lang?: string): Promise<any>;
|
|
16
17
|
//# 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;AAED,wBAAsB,aAAa,CACjC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,IAAI,CAAC,EAAE,MAAM,gBAId"}
|
|
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;AAED,wBAAsB,WAAW,CAC/B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,SAAO,gBAYZ"}
|
|
@@ -70,3 +70,15 @@ export async function getRenterList(msemServicesUrl, channel, resort, date) {
|
|
|
70
70
|
const endpoint = `${msemServicesUrl}/api/ski-rental/${resort}/renters`;
|
|
71
71
|
return Fetcher.post(endpoint, { channel, date });
|
|
72
72
|
}
|
|
73
|
+
export async function getEsfKinds(msemServicesUrl, channel, resort, stayFrom, stayTo, season, lang = "fr") {
|
|
74
|
+
const endpoint = `${msemServicesUrl}/api/esf/kinds`;
|
|
75
|
+
return Fetcher.post(endpoint, {
|
|
76
|
+
channel,
|
|
77
|
+
resort,
|
|
78
|
+
lang,
|
|
79
|
+
stayFrom,
|
|
80
|
+
stayTo,
|
|
81
|
+
season,
|
|
82
|
+
period: 6,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
@@ -9,8 +9,9 @@ type Props = {
|
|
|
9
9
|
msemServicesUrl: string;
|
|
10
10
|
target: HTMLElement | null;
|
|
11
11
|
resorts?: Resort[];
|
|
12
|
+
showUrl?: boolean;
|
|
12
13
|
close: () => void;
|
|
13
14
|
};
|
|
14
|
-
export default function MseMPresetLinker({ lang, channel, resort, msemServicesUrl, target, resorts, close, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export default function MseMPresetLinker({ lang, channel, resort, msemServicesUrl, target, resorts, close, showUrl, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
15
16
|
export {};
|
|
16
17
|
//# sourceMappingURL=msem-preset-linker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"msem-preset-linker.d.ts","sourceRoot":"","sources":["../../../../src/future/components/msem-preset-linker/msem-preset-linker.tsx"],"names":[],"mappings":"AAOA,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,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAIF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,eAAe,EACf,MAAM,EACN,OAAO,EACP,KAAK,
|
|
1
|
+
{"version":3,"file":"msem-preset-linker.d.ts","sourceRoot":"","sources":["../../../../src/future/components/msem-preset-linker/msem-preset-linker.tsx"],"names":[],"mappings":"AAOA,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,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAIF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,eAAe,EACf,MAAM,EACN,OAAO,EACP,KAAK,EACL,OAAO,GACR,EAAE,KAAK,2CA+DP"}
|
|
@@ -6,7 +6,7 @@ import MseMPresetEditor from "../msem-preset-editor";
|
|
|
6
6
|
import css from "./msem-preset-linker.module.css";
|
|
7
7
|
import MseMLogo from "./msem-logo";
|
|
8
8
|
const PRESET_ATTRIBUTE = "data-msem-preset";
|
|
9
|
-
export default function MseMPresetLinker({ lang, channel, resort, msemServicesUrl, target, resorts, close, }) {
|
|
9
|
+
export default function MseMPresetLinker({ lang, channel, resort, msemServicesUrl, target, resorts, close, showUrl, }) {
|
|
10
10
|
const link = target?.querySelector(":scope > a");
|
|
11
11
|
const currentPreset = target?.getAttribute("data-msem-preset") || undefined;
|
|
12
12
|
const urlOverride = link?.getAttribute("href") || undefined;
|
|
@@ -29,5 +29,5 @@ export default function MseMPresetLinker({ lang, channel, resort, msemServicesUr
|
|
|
29
29
|
}
|
|
30
30
|
closeEditor();
|
|
31
31
|
}, [preset]);
|
|
32
|
-
return (_jsxs(Dialog, { className: css.dialog, isOpened: true, close: closeEditor, closeButtonVariant: "transparent", closeOnBackdropClick: false, showAsModal: false, children: [_jsxs("div", { className: css.title, children: [_jsx(MseMLogo, { className: css.logo }), " \u00C9diteur de presets"] }), _jsx("div", { className: css.content, children: _jsx(MseMPresetEditor, { lang: lang, channel: channel, resort: resort, msemServicesUrl: msemServicesUrl, urlOverride: urlOverride, resorts: resorts, currentPreset: preset, onChange: setPreset }) }), _jsxs("div", { className: css.buttons, children: [_jsx(Button, { variant: "secondary", onClick: closeEditor, children: "Annuler" }), _jsx(Button, { variant: "primary", onClick: updatePreset, children: "Valider" })] })] }));
|
|
32
|
+
return (_jsxs(Dialog, { className: css.dialog, isOpened: true, close: closeEditor, closeButtonVariant: "transparent", closeOnBackdropClick: false, showAsModal: false, children: [_jsxs("div", { className: css.title, children: [_jsx(MseMLogo, { className: css.logo }), " \u00C9diteur de presets"] }), _jsx("div", { className: css.content, children: _jsx(MseMPresetEditor, { lang: lang, channel: channel, resort: resort, msemServicesUrl: msemServicesUrl, urlOverride: urlOverride, resorts: resorts, currentPreset: preset, onChange: setPreset, showUrl: showUrl }) }), _jsxs("div", { className: css.buttons, children: [_jsx(Button, { variant: "secondary", onClick: closeEditor, children: "Annuler" }), _jsx(Button, { variant: "primary", onClick: updatePreset, children: "Valider" })] })] }));
|
|
33
33
|
}
|