ublo-lib 1.39.13 → 1.39.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/stay-picker.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 +9 -8
- package/package.json +1 -1
- package/es/common/components/msem-preset-editor/components/facet-selector.d.ts +0 -6
- package/es/common/components/msem-preset-editor/components/facet-selector.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/components/facet-selector.js +0 -23
- package/es/common/components/msem-preset-editor/components/form.d.ts +0 -8
- package/es/common/components/msem-preset-editor/components/form.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/components/form.js +0 -9
- package/es/common/components/msem-preset-editor/components/form.module.css +0 -39
- package/es/common/components/msem-preset-editor/components/stay-picker.d.ts +0 -14
- package/es/common/components/msem-preset-editor/components/stay-picker.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/components/stay-picker.js +0 -35
- package/es/common/components/msem-preset-editor/components/stay-picker.module.css +0 -5
- package/es/common/components/msem-preset-editor/components/widget-list-item.d.ts +0 -12
- package/es/common/components/msem-preset-editor/components/widget-list-item.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/components/widget-list-item.js +0 -55
- package/es/common/components/msem-preset-editor/components/widget-list-item.module.css +0 -115
- package/es/common/components/msem-preset-editor/components/widget-list.d.ts +0 -17
- package/es/common/components/msem-preset-editor/components/widget-list.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/components/widget-list.js +0 -34
- package/es/common/components/msem-preset-editor/components/widget-list.module.css +0 -21
- package/es/common/components/msem-preset-editor/editor-dialog.d.ts +0 -30
- package/es/common/components/msem-preset-editor/editor-dialog.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/editor-dialog.js +0 -27
- package/es/common/components/msem-preset-editor/editor-dialog.module.css +0 -31
- package/es/common/components/msem-preset-editor/editors/elloha.d.ts +0 -15
- package/es/common/components/msem-preset-editor/editors/elloha.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/editors/elloha.js +0 -79
- package/es/common/components/msem-preset-editor/editors/elloha.module.css +0 -14
- package/es/common/components/msem-preset-editor/editors/index.d.ts +0 -16
- package/es/common/components/msem-preset-editor/editors/index.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/editors/index.js +0 -15
- package/es/common/components/msem-preset-editor/editors/lodgings.d.ts +0 -17
- package/es/common/components/msem-preset-editor/editors/lodgings.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/editors/lodgings.js +0 -192
- package/es/common/components/msem-preset-editor/editors/lodgings.module.css +0 -21
- package/es/common/components/msem-preset-editor/editors/ski-passes-jb.d.ts +0 -16
- package/es/common/components/msem-preset-editor/editors/ski-passes-jb.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/editors/ski-passes-jb.js +0 -85
- package/es/common/components/msem-preset-editor/editors/ski-passes.d.ts +0 -16
- package/es/common/components/msem-preset-editor/editors/ski-passes.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/editors/ski-passes.js +0 -198
- package/es/common/components/msem-preset-editor/editors/ski-passes.module.css +0 -25
- package/es/common/components/msem-preset-editor/editors/standard-products.d.ts +0 -16
- package/es/common/components/msem-preset-editor/editors/standard-products.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/editors/standard-products.js +0 -65
- package/es/common/components/msem-preset-editor/editors/vakario.d.ts +0 -15
- package/es/common/components/msem-preset-editor/editors/vakario.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/editors/vakario.js +0 -179
- package/es/common/components/msem-preset-editor/index.d.ts +0 -3
- package/es/common/components/msem-preset-editor/index.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/index.js +0 -2
- package/es/common/components/msem-preset-editor/msem-preset-editor.d.ts +0 -28
- package/es/common/components/msem-preset-editor/msem-preset-editor.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/msem-preset-editor.js +0 -161
- package/es/common/components/msem-preset-editor/msem-preset-editor.module.css +0 -38
- package/es/common/components/msem-preset-editor/services/api.d.ts +0 -15
- package/es/common/components/msem-preset-editor/services/api.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/services/api.js +0 -71
- package/es/common/components/msem-preset-editor/services/offers.d.ts +0 -23
- package/es/common/components/msem-preset-editor/services/offers.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/services/offers.js +0 -50
- package/es/common/components/msem-preset-editor/services/preset.d.ts +0 -32
- package/es/common/components/msem-preset-editor/services/preset.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/services/preset.js +0 -19
- package/es/common/components/msem-preset-editor/services/url-params.d.ts +0 -3
- package/es/common/components/msem-preset-editor/services/url-params.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/services/url-params.js +0 -26
- package/es/common/components/msem-preset-linker/components/actions.d.ts +0 -11
- package/es/common/components/msem-preset-linker/components/actions.d.ts.map +0 -1
- package/es/common/components/msem-preset-linker/components/actions.js +0 -45
- package/es/common/components/msem-preset-linker/components/actions.module.css +0 -65
- package/es/common/components/msem-preset-linker/components/overlays.d.ts +0 -8
- package/es/common/components/msem-preset-linker/components/overlays.d.ts.map +0 -1
- package/es/common/components/msem-preset-linker/components/overlays.js +0 -52
- package/es/common/components/msem-preset-linker/components/overlays.module.css +0 -64
- package/es/common/components/msem-preset-linker/components/resort-selector.d.ts +0 -6
- package/es/common/components/msem-preset-linker/components/resort-selector.d.ts.map +0 -1
- package/es/common/components/msem-preset-linker/components/resort-selector.js +0 -12
- package/es/common/components/msem-preset-linker/hooks/use-msem-presets.d.ts +0 -5
- package/es/common/components/msem-preset-linker/hooks/use-msem-presets.d.ts.map +0 -1
- package/es/common/components/msem-preset-linker/hooks/use-msem-presets.js +0 -37
- package/es/common/components/msem-preset-linker/index.d.ts +0 -3
- package/es/common/components/msem-preset-linker/index.d.ts.map +0 -1
- package/es/common/components/msem-preset-linker/index.js +0 -2
- package/es/common/components/msem-preset-linker/msem-preset-linker.d.ts +0 -30
- package/es/common/components/msem-preset-linker/msem-preset-linker.d.ts.map +0 -1
- package/es/common/components/msem-preset-linker/msem-preset-linker.js +0 -54
- package/es/common/components/msem-preset-linker/msem-preset-linker.module.css +0 -27
- package/es/common/components/msem-preset-linker/services/url-params.d.ts +0 -2
- package/es/common/components/msem-preset-linker/services/url-params.d.ts.map +0 -1
- package/es/common/components/msem-preset-linker/services/url-params.js +0 -13
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"elloha.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/msem-preset-editor/editors/elloha.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,KAAK,KAAK,GAAG;IACX,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;AAWF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,MAAM,EACN,SAAS,EACT,IAAI,EACJ,mBAAmB,EACnB,QAAQ,EACR,UAAU,GACX,EAAE,KAAK,2CAiHP"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import Input from "dt-design-system/es/input";
|
|
4
|
-
import MultipleSelect from "dt-design-system/es/multiple-select";
|
|
5
|
-
import Form from "../components/form";
|
|
6
|
-
import * as API from "../services/api";
|
|
7
|
-
import css from "./elloha.module.css";
|
|
8
|
-
const DEFAULT_DATA = {
|
|
9
|
-
groupNames: [],
|
|
10
|
-
};
|
|
11
|
-
export default function Elloha({ preset, setPreset, stay, setShowPresetDialog, onChange, testPreset, }) {
|
|
12
|
-
const savedPreset = React.useRef(preset);
|
|
13
|
-
const [loading, setLoading] = React.useState(false);
|
|
14
|
-
const [groupNames, setGroupNames] = React.useState([]);
|
|
15
|
-
const [selectedGroups, setSelectedGroups] = React.useState(getDefaultData(preset));
|
|
16
|
-
const { merchant } = preset?.options || {};
|
|
17
|
-
const stayIsUndefined = !stay?.from || !stay?.to;
|
|
18
|
-
const cancelPreset = () => {
|
|
19
|
-
setPreset(savedPreset.current);
|
|
20
|
-
setShowPresetDialog(false);
|
|
21
|
-
};
|
|
22
|
-
const confirmPreset = () => {
|
|
23
|
-
setShowPresetDialog(false);
|
|
24
|
-
};
|
|
25
|
-
const manualSelectedGroupUpdate = (newValue) => {
|
|
26
|
-
const values = newValue.split(";");
|
|
27
|
-
setSelectedGroups(values);
|
|
28
|
-
};
|
|
29
|
-
React.useEffect(() => {
|
|
30
|
-
if (!stayIsUndefined) {
|
|
31
|
-
const runEffect = async () => {
|
|
32
|
-
try {
|
|
33
|
-
setLoading(true);
|
|
34
|
-
const { kinds } = await API.getEllohaGroups(merchant, stay.from);
|
|
35
|
-
const allGroups = kinds.map((k) => k.group).filter(Boolean);
|
|
36
|
-
const groups = [...new Set(allGroups)];
|
|
37
|
-
setGroupNames(groups);
|
|
38
|
-
}
|
|
39
|
-
catch (e) {
|
|
40
|
-
console.error(e);
|
|
41
|
-
}
|
|
42
|
-
finally {
|
|
43
|
-
setLoading(false);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
runEffect();
|
|
47
|
-
}
|
|
48
|
-
}, [merchant, stayIsUndefined, stay.from]);
|
|
49
|
-
React.useEffect(() => {
|
|
50
|
-
setPreset((current = {}) => {
|
|
51
|
-
const newPreset = {
|
|
52
|
-
...current,
|
|
53
|
-
presets: {
|
|
54
|
-
...(current?.presets || {}),
|
|
55
|
-
groupNames: selectedGroups
|
|
56
|
-
.map((g) => g.trim())
|
|
57
|
-
.filter(Boolean),
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
onChange?.(newPreset);
|
|
61
|
-
return newPreset;
|
|
62
|
-
});
|
|
63
|
-
}, [onChange, selectedGroups, setPreset]);
|
|
64
|
-
return (_jsxs(Form, { title: "Presets activit\u00E9s Elloha", width: 420, preset: preset, buttonsActions: {
|
|
65
|
-
testPreset,
|
|
66
|
-
cancelPreset,
|
|
67
|
-
confirmPreset: groupNames.length === 0 && selectedGroups.length === 0
|
|
68
|
-
? undefined
|
|
69
|
-
: confirmPreset,
|
|
70
|
-
}, children: [!stayIsUndefined && (_jsx(MultipleSelect, { label: "Groupes", options: groupNames, values: selectedGroups, onChange: setSelectedGroups, placeholder: "S\u00E9lectionnez un ou plusieurs groupes", loading: loading, disabled: groupNames.length === 0, error: !loading &&
|
|
71
|
-
groupNames.length === 0 &&
|
|
72
|
-
"Aucun groupe disponible à ces dates" })), stayIsUndefined && (_jsxs(_Fragment, { children: [_jsx("div", { className: css.error, children: "Vous devez renseigner des dates de s\u00E9jour pour afficher dynamiquement les groupes" }), _jsx(Input, { label: "Groupe", placeholder: "", value: selectedGroups.join(";"), onValueChange: manualSelectedGroupUpdate }), _jsx("div", { className: css.helper, children: "Vous pouvez manuellement renseigner un ou plusieurs groupe(s) (les s\u00E9pararer par un \";\")" })] }))] }));
|
|
73
|
-
}
|
|
74
|
-
function getDefaultData(preset) {
|
|
75
|
-
if (!preset?.presets)
|
|
76
|
-
return DEFAULT_DATA.groupNames;
|
|
77
|
-
const { groupNames } = preset.presets;
|
|
78
|
-
return groupNames || DEFAULT_DATA.groupNames;
|
|
79
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
.error {
|
|
2
|
-
padding: 10px;
|
|
3
|
-
font-size: 12px;
|
|
4
|
-
text-align: center;
|
|
5
|
-
color: var(--ds-red-500, #990700);
|
|
6
|
-
background-color: var(--ds-red-200, #fde7e7);
|
|
7
|
-
border-radius: var(--ds-radius-200, 8px);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.helper {
|
|
11
|
-
margin-top: -6px;
|
|
12
|
-
font-size: 12px;
|
|
13
|
-
color: var(--ds-grey-400, #9d9d9d);
|
|
14
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import SkiPasses from "./ski-passes";
|
|
2
|
-
import SkiPassesJb from "./ski-passes-jb";
|
|
3
|
-
import Lodgings from "./lodgings";
|
|
4
|
-
import Elloha from "./elloha";
|
|
5
|
-
import Vakario from "./vakario";
|
|
6
|
-
import StandardProducts from "./standard-products";
|
|
7
|
-
declare const Editor: {
|
|
8
|
-
lodging: typeof Lodgings;
|
|
9
|
-
skiPass: typeof SkiPasses;
|
|
10
|
-
liftJb: typeof SkiPassesJb;
|
|
11
|
-
elloha: typeof Elloha;
|
|
12
|
-
vakario: typeof Vakario;
|
|
13
|
-
otherProducts: typeof StandardProducts;
|
|
14
|
-
};
|
|
15
|
-
export default Editor;
|
|
16
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/common/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;AAEnD,QAAA,MAAM,MAAM;;;;;;;CAOX,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import SkiPasses from "./ski-passes";
|
|
2
|
-
import SkiPassesJb from "./ski-passes-jb";
|
|
3
|
-
import Lodgings from "./lodgings";
|
|
4
|
-
import Elloha from "./elloha";
|
|
5
|
-
import Vakario from "./vakario";
|
|
6
|
-
import StandardProducts from "./standard-products";
|
|
7
|
-
const Editor = {
|
|
8
|
-
lodging: Lodgings,
|
|
9
|
-
skiPass: SkiPasses,
|
|
10
|
-
liftJb: SkiPassesJb,
|
|
11
|
-
elloha: Elloha,
|
|
12
|
-
vakario: Vakario,
|
|
13
|
-
otherProducts: StandardProducts,
|
|
14
|
-
};
|
|
15
|
-
export default Editor;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
type Props = {
|
|
3
|
-
stay: {
|
|
4
|
-
from: string;
|
|
5
|
-
to: string;
|
|
6
|
-
};
|
|
7
|
-
preset: Record<string, any> | null;
|
|
8
|
-
setPreset: React.Dispatch<React.SetStateAction<Record<string, any> | null>>;
|
|
9
|
-
setShowPresetDialog: React.Dispatch<React.SetStateAction<boolean>>;
|
|
10
|
-
testPreset: () => void;
|
|
11
|
-
onChange?: (preset: Record<string, any> | null) => void;
|
|
12
|
-
noLodgingPage?: boolean;
|
|
13
|
-
baseUrl: string;
|
|
14
|
-
};
|
|
15
|
-
export default function Lodgings({ preset, setPreset, setShowPresetDialog, testPreset, onChange, baseUrl, noLodgingPage, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=lodgings.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lodgings.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/msem-preset-editor/editors/lodgings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,KAAK,KAAK,GAAG;IACX,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,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAsCF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,SAAS,EACT,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,OAAO,EACP,aAAa,GACd,EAAE,KAAK,2CAmSP"}
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import Checkbox from "dt-design-system/es/checkbox";
|
|
4
|
-
import NumberPicker from "dt-design-system/es/number-picker";
|
|
5
|
-
import Select from "dt-design-system/es/select";
|
|
6
|
-
import MultipleSelect from "dt-design-system/es/multiple-select";
|
|
7
|
-
import Form from "../components/form";
|
|
8
|
-
import * as API from "../services/api";
|
|
9
|
-
import css from "./lodgings.module.css";
|
|
10
|
-
const DEFAULT_DATA = {
|
|
11
|
-
adults: 0,
|
|
12
|
-
children: 0,
|
|
13
|
-
lodging: "",
|
|
14
|
-
standings: [],
|
|
15
|
-
options: [],
|
|
16
|
-
districts: [],
|
|
17
|
-
nbRooms: [],
|
|
18
|
-
roomType: "",
|
|
19
|
-
type: "",
|
|
20
|
-
openPage: false,
|
|
21
|
-
};
|
|
22
|
-
export default function Lodgings({ preset, setPreset, setShowPresetDialog, testPreset, onChange, baseUrl, noLodgingPage, }) {
|
|
23
|
-
const savedPreset = React.useRef(preset);
|
|
24
|
-
const [ready, setReady] = React.useState(false);
|
|
25
|
-
const [lodgings, setLogings] = React.useState([]);
|
|
26
|
-
const [filters, setFilters] = React.useState({
|
|
27
|
-
standings: [],
|
|
28
|
-
options: [],
|
|
29
|
-
districts: [],
|
|
30
|
-
});
|
|
31
|
-
const [rooms, setRooms] = React.useState([]);
|
|
32
|
-
const [loading, setLoading] = React.useState(false);
|
|
33
|
-
const [data, setData] = React.useState(getDefaultData(preset));
|
|
34
|
-
const kinds = [...new Set(lodgings.map(({ kind }) => kind))];
|
|
35
|
-
const { channel, resort, facet } = preset?.options || {};
|
|
36
|
-
const showLodgingPageCheckbox = !noLodgingPage && !!data.lodging;
|
|
37
|
-
const showFilters = !data.lodging;
|
|
38
|
-
const updateField = (field) => (value) => {
|
|
39
|
-
setData({ ...data, [field]: value });
|
|
40
|
-
};
|
|
41
|
-
const updateRoomNb = (value) => {
|
|
42
|
-
setData({ ...data, nbRooms: value ? [value] : DEFAULT_DATA.nbRooms });
|
|
43
|
-
};
|
|
44
|
-
const updateFilter = (kind) => (newValue) => {
|
|
45
|
-
setData((data) => ({ ...data, [kind]: newValue.map((v) => v.value) }));
|
|
46
|
-
};
|
|
47
|
-
const formattedLodgings = lodgings.map((lodging) => ({
|
|
48
|
-
value: lodging.slug,
|
|
49
|
-
label: lodging.name,
|
|
50
|
-
}));
|
|
51
|
-
const formattedRooms = rooms.map((room) => ({
|
|
52
|
-
label: room.title,
|
|
53
|
-
value: room.type,
|
|
54
|
-
}));
|
|
55
|
-
const selectedOptions = data.options?.map((option) => filters?.options?.find((d) => d.value === option));
|
|
56
|
-
const selectedDistricts = data.districts?.map((district) => filters?.districts?.find((d) => d.value === district));
|
|
57
|
-
const cancelPreset = () => {
|
|
58
|
-
setPreset(savedPreset.current);
|
|
59
|
-
setShowPresetDialog(false);
|
|
60
|
-
};
|
|
61
|
-
const confirmPreset = () => {
|
|
62
|
-
setShowPresetDialog(false);
|
|
63
|
-
};
|
|
64
|
-
React.useEffect(() => {
|
|
65
|
-
if (!ready) {
|
|
66
|
-
const init = async () => {
|
|
67
|
-
try {
|
|
68
|
-
setLoading(true);
|
|
69
|
-
const filters = await API.getLodgingFilters(channel, resort, facet);
|
|
70
|
-
const formattedFilters = Object.keys(filters).reduce((acc, key) => {
|
|
71
|
-
if (key === "accomodations")
|
|
72
|
-
return acc;
|
|
73
|
-
const filter = filters[key];
|
|
74
|
-
if (key === "districts") {
|
|
75
|
-
const entries = filter.map((entry) => ({
|
|
76
|
-
value: entry.id,
|
|
77
|
-
label: entry.name,
|
|
78
|
-
}));
|
|
79
|
-
return { ...acc, [key]: entries };
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
const entries = filter.map((entry) => ({
|
|
83
|
-
value: entry.code,
|
|
84
|
-
label: entry.label,
|
|
85
|
-
}));
|
|
86
|
-
return { ...acc, [key]: entries };
|
|
87
|
-
}
|
|
88
|
-
}, {});
|
|
89
|
-
setLogings(filters.accomodations);
|
|
90
|
-
setFilters(formattedFilters);
|
|
91
|
-
setReady(true);
|
|
92
|
-
}
|
|
93
|
-
catch (e) {
|
|
94
|
-
console.error(e);
|
|
95
|
-
}
|
|
96
|
-
finally {
|
|
97
|
-
setLoading(false);
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
init();
|
|
101
|
-
}
|
|
102
|
-
}, [channel, facet, ready, resort]);
|
|
103
|
-
React.useEffect(() => {
|
|
104
|
-
if (!data.lodging) {
|
|
105
|
-
setData((data) => ({ ...data, openPage: false }));
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
const getRoomTypes = async () => {
|
|
109
|
-
try {
|
|
110
|
-
setLoading(true);
|
|
111
|
-
const id = lodgings.find((lodging) => lodging.slug === data.lodging)?.id;
|
|
112
|
-
if (id) {
|
|
113
|
-
const { rooms } = await API.getLodgingRooms(id, resort, facet);
|
|
114
|
-
if (rooms) {
|
|
115
|
-
setRooms(rooms);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
catch (e) {
|
|
120
|
-
console.error(e);
|
|
121
|
-
}
|
|
122
|
-
finally {
|
|
123
|
-
setLoading(false);
|
|
124
|
-
}
|
|
125
|
-
setData((data) => ({
|
|
126
|
-
...data,
|
|
127
|
-
openPage: data.openPage ?? true,
|
|
128
|
-
options: DEFAULT_DATA.options,
|
|
129
|
-
districts: DEFAULT_DATA.districts,
|
|
130
|
-
type: DEFAULT_DATA.type,
|
|
131
|
-
}));
|
|
132
|
-
};
|
|
133
|
-
getRoomTypes();
|
|
134
|
-
}
|
|
135
|
-
}, [data.lodging, facet, lodgings, resort]);
|
|
136
|
-
React.useEffect(() => {
|
|
137
|
-
setPreset((current = {}) => {
|
|
138
|
-
const { lodging } = data;
|
|
139
|
-
const adults = parseInt(data.adults);
|
|
140
|
-
const children = parseInt(data.children);
|
|
141
|
-
const accomodation = lodging || undefined;
|
|
142
|
-
const openPage = lodging ? data.openPage : undefined;
|
|
143
|
-
const agesChildren = [...new Array(children)].map(() => 12);
|
|
144
|
-
const paxPlan = adults ? { adults, children, agesChildren } : undefined;
|
|
145
|
-
const options = data.options?.length ? data.options : undefined;
|
|
146
|
-
const districts = data.districts?.length ? data.districts : undefined;
|
|
147
|
-
const type = data.type || undefined;
|
|
148
|
-
const roomType = data.roomType || undefined;
|
|
149
|
-
const nbRooms = data.nbRooms[0] > 0 ? data.nbRooms : undefined;
|
|
150
|
-
const previewDetails = { paxPlan, roomType };
|
|
151
|
-
const presets = {
|
|
152
|
-
accomodation,
|
|
153
|
-
options,
|
|
154
|
-
districts,
|
|
155
|
-
nbRooms,
|
|
156
|
-
type,
|
|
157
|
-
};
|
|
158
|
-
const newPreset = {
|
|
159
|
-
...current,
|
|
160
|
-
options: { ...(current?.options || {}), previewDetails },
|
|
161
|
-
presets: { ...(current?.presets || {}), ...presets },
|
|
162
|
-
openPage,
|
|
163
|
-
url: baseUrl || undefined,
|
|
164
|
-
};
|
|
165
|
-
onChange?.(newPreset);
|
|
166
|
-
return newPreset;
|
|
167
|
-
});
|
|
168
|
-
}, [data, onChange, baseUrl, setPreset]);
|
|
169
|
-
return (_jsxs(Form, { title: "Presets h\u00E9bergements", width: 580, preset: preset, buttonsActions: {
|
|
170
|
-
testPreset,
|
|
171
|
-
cancelPreset,
|
|
172
|
-
confirmPreset,
|
|
173
|
-
}, 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 }), showLodgingPageCheckbox && (_jsx(Checkbox, { label: "Ouvrir la page du site", checked: data.openPage, disabled: !showLodgingPageCheckbox, onCheckedChange: updateField("openPage") })), !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
|
-
}
|
|
175
|
-
function getDefaultData(preset) {
|
|
176
|
-
if (!preset?.presets && !preset?.options)
|
|
177
|
-
return DEFAULT_DATA;
|
|
178
|
-
const { accomodation, nbRooms, options, districts, type } = preset?.presets || {};
|
|
179
|
-
const { openPage } = preset;
|
|
180
|
-
const { paxPlan, roomType } = preset?.options?.previewDetails || {};
|
|
181
|
-
return {
|
|
182
|
-
adults: paxPlan?.adults || DEFAULT_DATA.adults,
|
|
183
|
-
children: paxPlan?.children || DEFAULT_DATA.children,
|
|
184
|
-
lodging: accomodation || DEFAULT_DATA.lodging,
|
|
185
|
-
nbRooms: nbRooms || DEFAULT_DATA.nbRooms,
|
|
186
|
-
roomType: roomType || DEFAULT_DATA.roomType,
|
|
187
|
-
options: options || DEFAULT_DATA.options,
|
|
188
|
-
districts: districts || DEFAULT_DATA.districts,
|
|
189
|
-
type: type || DEFAULT_DATA.type,
|
|
190
|
-
openPage: openPage ?? DEFAULT_DATA.openPage,
|
|
191
|
-
};
|
|
192
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
.row {
|
|
2
|
-
display: flex;
|
|
3
|
-
gap: 8px;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
.rowWrap {
|
|
7
|
-
display: flex;
|
|
8
|
-
flex-wrap: wrap;
|
|
9
|
-
justify-content: space-between;
|
|
10
|
-
gap: 8px;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.rowWrap > * {
|
|
14
|
-
flex: 0 0 auto;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.label {
|
|
18
|
-
font-size: 12px;
|
|
19
|
-
user-select: none;
|
|
20
|
-
font-weight: 700;
|
|
21
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
type Props = {
|
|
3
|
-
stay: {
|
|
4
|
-
from: string;
|
|
5
|
-
to: string;
|
|
6
|
-
};
|
|
7
|
-
preset: Record<string, any> | null;
|
|
8
|
-
setPreset: React.Dispatch<React.SetStateAction<Record<string, any> | null>>;
|
|
9
|
-
setShowPresetDialog: React.Dispatch<React.SetStateAction<boolean>>;
|
|
10
|
-
onChange?: (preset: Record<string, any> | null) => void;
|
|
11
|
-
testPreset: () => void;
|
|
12
|
-
baseUrl: string;
|
|
13
|
-
};
|
|
14
|
-
export default function SkiPasses({ preset, setPreset, stay, setShowPresetDialog, onChange, testPreset, baseUrl, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=ski-passes-jb.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ski-passes-jb.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/msem-preset-editor/editors/ski-passes-jb.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,KAAK,KAAK,GAAG;IACX,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,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAQF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,SAAS,EACT,IAAI,EACJ,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,OAAO,GACR,EAAE,KAAK,2CA2GP"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import Select from "dt-design-system/es/select";
|
|
4
|
-
import Input from "dt-design-system/es/input";
|
|
5
|
-
import NumberPicker from "dt-design-system/es/number-picker";
|
|
6
|
-
import Form from "../components/form";
|
|
7
|
-
import * as API from "../services/api";
|
|
8
|
-
const DEFAULT_DATA = {
|
|
9
|
-
catalog: "",
|
|
10
|
-
firstSkiDate: "",
|
|
11
|
-
nbParticipants: 1,
|
|
12
|
-
};
|
|
13
|
-
export default function SkiPasses({ preset, setPreset, stay, setShowPresetDialog, onChange, testPreset, baseUrl, }) {
|
|
14
|
-
const savedPreset = React.useRef(preset);
|
|
15
|
-
const [catalogs, setCatalogs] = React.useState(null);
|
|
16
|
-
const [catalog, setCatalog] = React.useState(preset?.options?.catalog || "");
|
|
17
|
-
const [data, setData] = React.useState(getDefaultData(preset));
|
|
18
|
-
const firstSkiDateDefaultMonth = stay?.from
|
|
19
|
-
? new Date(stay.from).getMonth() + 1
|
|
20
|
-
: undefined;
|
|
21
|
-
const { merchant } = preset?.options;
|
|
22
|
-
const isReady = catalogs !== null;
|
|
23
|
-
const hasCatalog = isReady && catalogs?.length > 0 && catalog !== "";
|
|
24
|
-
const cancelPreset = () => {
|
|
25
|
-
setPreset(savedPreset.current);
|
|
26
|
-
setShowPresetDialog(false);
|
|
27
|
-
};
|
|
28
|
-
const confirmPreset = () => {
|
|
29
|
-
setShowPresetDialog(false);
|
|
30
|
-
};
|
|
31
|
-
const updateField = (field) => (value) => {
|
|
32
|
-
setData((data) => ({ ...data, [field]: value }));
|
|
33
|
-
};
|
|
34
|
-
const updateFirstSkiDate = (value) => {
|
|
35
|
-
updateField("firstSkiDate")(value);
|
|
36
|
-
};
|
|
37
|
-
React.useEffect(() => {
|
|
38
|
-
if (!isReady) {
|
|
39
|
-
const runEffect = async () => {
|
|
40
|
-
try {
|
|
41
|
-
const catalogs = await API.getSkiPassesCatalogs(merchant);
|
|
42
|
-
setCatalogs(catalogs);
|
|
43
|
-
}
|
|
44
|
-
catch (e) {
|
|
45
|
-
setCatalogs([]);
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
runEffect();
|
|
49
|
-
}
|
|
50
|
-
}, [isReady, merchant]);
|
|
51
|
-
React.useEffect(() => {
|
|
52
|
-
setPreset((current = {}) => {
|
|
53
|
-
const newPreset = {
|
|
54
|
-
...current,
|
|
55
|
-
options: {
|
|
56
|
-
...(current?.options || {}),
|
|
57
|
-
catalog,
|
|
58
|
-
},
|
|
59
|
-
presets: {
|
|
60
|
-
...(current?.presets || {}),
|
|
61
|
-
...data,
|
|
62
|
-
},
|
|
63
|
-
url: baseUrl || undefined,
|
|
64
|
-
};
|
|
65
|
-
onChange?.(newPreset);
|
|
66
|
-
return newPreset;
|
|
67
|
-
});
|
|
68
|
-
}, [catalog, data, baseUrl, setPreset, onChange]);
|
|
69
|
-
return (_jsxs(Form, { title: "Presets forfaits JB", width: 420, preset: preset, buttonsActions: {
|
|
70
|
-
testPreset,
|
|
71
|
-
cancelPreset,
|
|
72
|
-
confirmPreset: hasCatalog ? confirmPreset : undefined,
|
|
73
|
-
}, children: [_jsx(Select, { label: "Catalogue", value: catalog, options: catalogs ? ["", ...catalogs] : [], onValueChange: setCatalog, loading: !isReady }), 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 }), _jsx(NumberPicker, { label: "Nb de participants", value: data.nbParticipants, onChange: updateField("nbParticipants"), min: 0, withInput: true, compact: true })] }))] }));
|
|
74
|
-
}
|
|
75
|
-
function getDefaultData(preset) {
|
|
76
|
-
if (!preset?.presets)
|
|
77
|
-
return DEFAULT_DATA;
|
|
78
|
-
const { catalog } = preset.options || {};
|
|
79
|
-
const { firstSkiDate, nbParticipants } = preset.presets;
|
|
80
|
-
return {
|
|
81
|
-
catalog: catalog || DEFAULT_DATA.catalog,
|
|
82
|
-
firstSkiDate: firstSkiDate || DEFAULT_DATA.firstSkiDate,
|
|
83
|
-
nbParticipants: nbParticipants || DEFAULT_DATA.nbParticipants,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
type Props = {
|
|
3
|
-
stay: {
|
|
4
|
-
from: string;
|
|
5
|
-
to: string;
|
|
6
|
-
};
|
|
7
|
-
preset: Record<string, any> | null;
|
|
8
|
-
setPreset: React.Dispatch<React.SetStateAction<Record<string, any> | null>>;
|
|
9
|
-
setShowPresetDialog: React.Dispatch<React.SetStateAction<boolean>>;
|
|
10
|
-
onChange?: (preset: Record<string, any> | null) => void;
|
|
11
|
-
testPreset: () => void;
|
|
12
|
-
baseUrl: string;
|
|
13
|
-
};
|
|
14
|
-
export default function SkiPasses({ preset, setPreset, stay, setShowPresetDialog, onChange, testPreset, baseUrl, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=ski-passes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ski-passes.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/msem-preset-editor/editors/ski-passes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,KAAK,KAAK,GAAG;IACX,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,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA4DF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,SAAS,EACT,IAAI,EACJ,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,OAAO,GACR,EAAE,KAAK,2CAqRP"}
|