ublo-lib 1.17.8 → 1.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/es/common/components/msem-preset-editor/editor-dialog.d.ts +2 -1
  2. package/es/common/components/msem-preset-editor/editor-dialog.d.ts.map +1 -1
  3. package/es/common/components/msem-preset-editor/editor-dialog.js +2 -2
  4. package/es/common/components/msem-preset-editor/editors/lodgings.d.ts +2 -1
  5. package/es/common/components/msem-preset-editor/editors/lodgings.d.ts.map +1 -1
  6. package/es/common/components/msem-preset-editor/editors/lodgings.js +2 -2
  7. package/es/common/components/msem-preset-editor/msem-preset-editor.d.ts +2 -1
  8. package/es/common/components/msem-preset-editor/msem-preset-editor.d.ts.map +1 -1
  9. package/es/common/components/msem-preset-editor/msem-preset-editor.js +2 -2
  10. package/es/common/components/msem-preset-linker/msem-preset-linker.d.ts +2 -1
  11. package/es/common/components/msem-preset-linker/msem-preset-linker.d.ts.map +1 -1
  12. package/es/common/components/msem-preset-linker/msem-preset-linker.js +2 -2
  13. package/es/esf/components/{instructors-book-v2 → instructors-book}/api.js +12 -8
  14. package/es/esf/components/{instructors-book-v2 → instructors-book}/book.js +1 -1
  15. package/es/esf/components/{instructors-book-v2 → instructors-book}/filters.js +2 -2
  16. package/es/esf/components/instructors-book/index.js +6 -3
  17. package/es/esf/components/{instructors-book-v2 → instructors-book}/instructor.js +6 -6
  18. package/es/esf/components/instructors-book/list.js +39 -170
  19. package/es/esf/components/instructors-book/messages.js +36 -37
  20. package/es/esf/components/{instructors-book-v2 → instructors-book}/sheet.js +17 -17
  21. package/es/esf/components/instructors-book/utils.js +48 -2
  22. package/package.json +1 -1
  23. package/es/esf/components/instructor-suggestions/fetcher.js +0 -16
  24. package/es/esf/components/instructor-suggestions/icons.js +0 -266
  25. package/es/esf/components/instructor-suggestions/index.js +0 -2
  26. package/es/esf/components/instructor-suggestions/instructor-suggestions.js +0 -180
  27. package/es/esf/components/instructor-suggestions/loader.js +0 -8
  28. package/es/esf/components/instructor-suggestions/messages.js +0 -16
  29. package/es/esf/components/instructors-book/container.js +0 -18
  30. package/es/esf/components/instructors-book/details.js +0 -117
  31. package/es/esf/components/instructors-book/icons.js +0 -266
  32. package/es/esf/components/instructors-book/inner.js +0 -15
  33. package/es/esf/components/instructors-book/instructors-book.js +0 -111
  34. package/es/esf/components/instructors-book/link.js +0 -17
  35. package/es/esf/components/instructors-book/list-utils.js +0 -18
  36. package/es/esf/components/instructors-book/loader.js +0 -8
  37. package/es/esf/components/instructors-book-v2/index.js +0 -6
  38. package/es/esf/components/instructors-book-v2/list.js +0 -47
  39. package/es/esf/components/instructors-book-v2/messages.js +0 -41
  40. package/es/esf/components/instructors-book-v2/utils.js +0 -51
  41. /package/es/esf/components/{instructors-book-v2 → instructors-book}/book.module.css +0 -0
  42. /package/es/esf/components/{instructors-book-v2 → instructors-book}/filters.module.css +0 -0
  43. /package/es/esf/components/{instructors-book-v2 → instructors-book}/flags.js +0 -0
  44. /package/es/esf/components/{instructors-book-v2 → instructors-book}/instructor.module.css +0 -0
  45. /package/es/esf/components/{instructors-book-v2 → instructors-book}/list.module.css +0 -0
  46. /package/es/esf/components/{instructors-book-v2 → instructors-book}/prefixes.js +0 -0
  47. /package/es/esf/components/{instructors-book-v2 → instructors-book}/sheet.module.css +0 -0
  48. /package/es/esf/components/{instructors-book-v2 → instructors-book}/suggestions.js +0 -0
  49. /package/es/esf/components/{instructors-book-v2 → instructors-book}/suggestions.module.css +0 -0
@@ -22,8 +22,9 @@ type Props = {
22
22
  updatePreset: (preset: any) => any;
23
23
  closeEditor: () => void;
24
24
  removeObsoletePreset: () => void;
25
+ noLodgingPage?: boolean;
25
26
  children?: React.ReactNode;
26
27
  };
27
- export default function EditorDialog({ lang, options, urls, target, updatePreset, closeEditor, removeObsoletePreset, children, }: Props): import("react/jsx-runtime").JSX.Element;
28
+ export default function EditorDialog({ lang, options, urls, target, updatePreset, closeEditor, removeObsoletePreset, noLodgingPage, children, }: Props): import("react/jsx-runtime").JSX.Element;
28
29
  export {};
29
30
  //# sourceMappingURL=editor-dialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-dialog.d.ts","sourceRoot":"","sources":["../../../../src/common/components/msem-preset-editor/editor-dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,QAAQ,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;IACF,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IACnC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,QAAQ,GACT,EAAE,KAAK,2CAqDP"}
1
+ {"version":3,"file":"editor-dialog.d.ts","sourceRoot":"","sources":["../../../../src/common/components/msem-preset-editor/editor-dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,QAAQ,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;IACF,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IACnC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,QAAQ,GACT,EAAE,KAAK,2CAsDP"}
@@ -5,12 +5,12 @@ import Button from "dt-design-system/es/button";
5
5
  import * as Icons from "dt-design-system/es/icons";
6
6
  import MseMPresetEditor from "./msem-preset-editor";
7
7
  import css from "./editor-dialog.module.css";
8
- export default function EditorDialog({ lang, options, urls, target, updatePreset, closeEditor, removeObsoletePreset, children, }) {
8
+ export default function EditorDialog({ lang, options, urls, target, updatePreset, closeEditor, removeObsoletePreset, noLodgingPage, children, }) {
9
9
  const selectedPreset = target?.getAttribute("data-msem-preset");
10
10
  const [preset, setPreset] = React.useState(selectedPreset ? JSON.parse(selectedPreset) : null);
11
11
  const hasObsoletePreset = target?.hasAttribute("data-config");
12
12
  const updateNewPreset = React.useCallback(() => {
13
13
  updatePreset(preset);
14
14
  }, [preset, updatePreset]);
15
- return (_jsxs(Dialog, { className: css.dialog, isOpened: !!target, container: null, close: closeEditor, showAsModal: false, closeOnBackdropClick: false, children: [_jsx("div", { className: css.title, children: "Choisissez un widget" }), _jsx("div", { className: css.subtitle, children: "Ce dernier s'ouvrira au clic sur la section selectionn\u00E9e." }), _jsx(MseMPresetEditor, { lang: lang, options: options, urls: urls, selectedPreset: selectedPreset, onChange: setPreset, children: children }), _jsxs("div", { className: css.buttons, children: [hasObsoletePreset && (_jsxs(Button, { variant: "danger", className: css.removeObsolete, onClick: removeObsoletePreset, children: [_jsx(Icons.MdOutlineCleaningServices, {}), "Nettoyer le preset obsol\u00E8te"] })), _jsx(Button, { variant: "secondary", onClick: closeEditor, children: "Annuler" }), _jsx(Button, { variant: "primary", onClick: updateNewPreset, children: "Valider" })] })] }));
15
+ return (_jsxs(Dialog, { className: css.dialog, isOpened: !!target, container: null, close: closeEditor, showAsModal: false, closeOnBackdropClick: false, children: [_jsx("div", { className: css.title, children: "Choisissez un widget" }), _jsx("div", { className: css.subtitle, children: "Ce dernier s'ouvrira au clic sur la section selectionn\u00E9e." }), _jsx(MseMPresetEditor, { lang: lang, options: options, urls: urls, selectedPreset: selectedPreset, onChange: setPreset, noLodgingPage: noLodgingPage, children: children }), _jsxs("div", { className: css.buttons, children: [hasObsoletePreset && (_jsxs(Button, { variant: "danger", className: css.removeObsolete, onClick: removeObsoletePreset, children: [_jsx(Icons.MdOutlineCleaningServices, {}), "Nettoyer le preset obsol\u00E8te"] })), _jsx(Button, { variant: "secondary", onClick: closeEditor, children: "Annuler" }), _jsx(Button, { variant: "primary", onClick: updateNewPreset, children: "Valider" })] })] }));
16
16
  }
@@ -9,8 +9,9 @@ type Props = {
9
9
  setShowPresetDialog: React.Dispatch<React.SetStateAction<boolean>>;
10
10
  testPreset: () => void;
11
11
  onChange: (preset: Record<string, any>) => void;
12
+ noLodgingPage?: boolean;
12
13
  baseUrl: string;
13
14
  };
14
- export default function Lodgings({ preset, setPreset, setShowPresetDialog, testPreset, onChange, baseUrl, }: Props): import("react/jsx-runtime").JSX.Element;
15
+ export default function Lodgings({ preset, setPreset, setShowPresetDialog, testPreset, onChange, baseUrl, noLodgingPage, }: Props): import("react/jsx-runtime").JSX.Element;
15
16
  export {};
16
17
  //# sourceMappingURL=lodgings.d.ts.map
@@ -1 +1 @@
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,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAChD,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,GACR,EAAE,KAAK,2CAmSP"}
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,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAChD,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"}
@@ -19,7 +19,7 @@ const DEFAULT_DATA = {
19
19
  type: "",
20
20
  openPage: false,
21
21
  };
22
- export default function Lodgings({ preset, setPreset, setShowPresetDialog, testPreset, onChange, baseUrl, }) {
22
+ export default function Lodgings({ preset, setPreset, setShowPresetDialog, testPreset, onChange, baseUrl, noLodgingPage, }) {
23
23
  const savedPreset = React.useRef(preset);
24
24
  const [ready, setReady] = React.useState(false);
25
25
  const [lodgings, setLogings] = React.useState([]);
@@ -33,7 +33,7 @@ export default function Lodgings({ preset, setPreset, setShowPresetDialog, testP
33
33
  const [data, setData] = React.useState(getDefaultData(preset));
34
34
  const kinds = [...new Set(lodgings.map(({ kind }) => kind))];
35
35
  const { channel, resort, facet } = preset?.options || {};
36
- const showLodgingPageCheckbox = !!data.lodging;
36
+ const showLodgingPageCheckbox = !noLodgingPage && !!data.lodging;
37
37
  const showFilters = !data.lodging;
38
38
  const updateField = (field) => (value) => {
39
39
  setData({ ...data, [field]: value });
@@ -20,8 +20,9 @@ type Props = {
20
20
  };
21
21
  selectedPreset?: string | null;
22
22
  onChange?: (preset: Record<string, any> | null) => void;
23
+ noLodgingPage?: boolean;
23
24
  children?: React.ReactNode;
24
25
  };
25
- export default function MseMPresetEditor({ lang, options, urls, selectedPreset, onChange, children, }: Props): import("react/jsx-runtime").JSX.Element | null;
26
+ export default function MseMPresetEditor({ lang, options, urls, selectedPreset, onChange, noLodgingPage, children, }: Props): import("react/jsx-runtime").JSX.Element | null;
26
27
  export {};
27
28
  //# sourceMappingURL=msem-preset-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"msem-preset-editor.d.ts","sourceRoot":"","sources":["../../../../src/common/components/msem-preset-editor/msem-preset-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,QAAQ,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,cAAc,EACd,QAAQ,EACR,QAAQ,GACT,EAAE,KAAK,kDAiMP"}
1
+ {"version":3,"file":"msem-preset-editor.d.ts","sourceRoot":"","sources":["../../../../src/common/components/msem-preset-editor/msem-preset-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,QAAQ,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,cAAc,EACd,QAAQ,EACR,aAAa,EACb,QAAQ,GACT,EAAE,KAAK,kDAkMP"}
@@ -16,7 +16,7 @@ import * as Preset from "./services/preset";
16
16
  import css from "./msem-preset-editor.module.css";
17
17
  const { publicRuntimeConfig } = getConfig();
18
18
  const { langPrefix } = publicRuntimeConfig;
19
- export default function MseMPresetEditor({ lang, options, urls, selectedPreset, onChange, children, }) {
19
+ export default function MseMPresetEditor({ lang, options, urls, selectedPreset, onChange, noLodgingPage, children, }) {
20
20
  const currentPreset = selectedPreset ? JSON.parse(selectedPreset) : undefined;
21
21
  const defaultResort = Number(currentPreset ? currentPreset.options.resort : options.resort);
22
22
  const [facet, setFacet] = React.useState(currentPreset?.options?.facet?.toString() || "");
@@ -118,7 +118,7 @@ export default function MseMPresetEditor({ lang, options, urls, selectedPreset,
118
118
  React.cloneElement(children, {
119
119
  resort,
120
120
  setResort,
121
- }), _jsx(FacetSelector, { facet: facet, setFacet: setFacet, setPreset: setPreset }), _jsx(StayPicker, { stay: stay, setStay: setStay, setPreset: setPreset }), showWidgetList && (_jsx(WidgetList, { lang: lang, resort: resort, channel: options.channel, facet: facet, preset: preset, updatePreset: updatePreset, removePreset: removePreset, error: error, setError: setError, setShowPresetDialog: setShowPresetDialog })), _jsx(Dialog, { isOpened: showPresetDialog, close: () => setShowPresetDialog(false), container: null, showAsModal: false, showCloseButton: false, children: showPresetDialog && (_jsx(CurrentEditor, { stay: stay, facet: facet, preset: preset, setPreset: setPreset, setShowPresetDialog: setShowPresetDialog, testPreset: testPreset, onChange: onChange, baseUrl: baseUrl })) }), error && _jsx("div", { className: css.error, children: error }), _jsxs("div", { className: css.footer, children: [_jsx(Button, { variant: "secondary", disabled: !preset?.widget, className: css.testButton, onClick: testPreset, "data-tooltip": "Tester dans le widget MseM", children: _jsx(Icons.MdOpenInBrowser, {}) }), _jsx(Input, { type: "text", className: css.url, value: presetUrl, onClick: copyUrl, disabled: !preset?.widget || presetUrl === "", placeholder: !preset
121
+ }), _jsx(FacetSelector, { facet: facet, setFacet: setFacet, setPreset: setPreset }), _jsx(StayPicker, { stay: stay, setStay: setStay, setPreset: setPreset }), showWidgetList && (_jsx(WidgetList, { lang: lang, resort: resort, channel: options.channel, facet: facet, preset: preset, updatePreset: updatePreset, removePreset: removePreset, error: error, setError: setError, setShowPresetDialog: setShowPresetDialog })), _jsx(Dialog, { isOpened: showPresetDialog, close: () => setShowPresetDialog(false), container: null, showAsModal: false, showCloseButton: false, children: showPresetDialog && (_jsx(CurrentEditor, { stay: stay, facet: facet, preset: preset, setPreset: setPreset, setShowPresetDialog: setShowPresetDialog, testPreset: testPreset, onChange: onChange, baseUrl: baseUrl, noLodgingPage: noLodgingPage })) }), error && _jsx("div", { className: css.error, children: error }), _jsxs("div", { className: css.footer, children: [_jsx(Button, { variant: "secondary", disabled: !preset?.widget, className: css.testButton, onClick: testPreset, "data-tooltip": "Tester dans le widget MseM", children: _jsx(Icons.MdOpenInBrowser, {}) }), _jsx(Input, { type: "text", className: css.url, value: presetUrl, onClick: copyUrl, disabled: !preset?.widget || presetUrl === "", placeholder: !preset
122
122
  ? "Aucun preset sélectionné"
123
123
  : "Preset incompatible au format URL", readOnly: true })] })] }));
124
124
  }
@@ -17,6 +17,7 @@ type Props = {
17
17
  summer: string;
18
18
  };
19
19
  };
20
+ noLodgingPage?: boolean;
20
21
  children?: React.ReactNode;
21
22
  };
22
23
  export declare const MODES: {
@@ -24,6 +25,6 @@ export declare const MODES: {
24
25
  EDITING: number;
25
26
  };
26
27
  export declare const PRESET_ATTRIBUTE = "data-msem-preset";
27
- export default function MseMPresetLinker({ lang, options, urls, children, }: Props): import("react/jsx-runtime").JSX.Element | null;
28
+ export default function MseMPresetLinker({ lang, options, urls, noLodgingPage, children, }: Props): import("react/jsx-runtime").JSX.Element | null;
28
29
  export {};
29
30
  //# sourceMappingURL=msem-preset-linker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"msem-preset-linker.d.ts","sourceRoot":"","sources":["../../../../src/common/components/msem-preset-linker/msem-preset-linker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,QAAQ,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,KAAK;;;CAGjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,QAAQ,GACT,EAAE,KAAK,kDA8DP"}
1
+ {"version":3,"file":"msem-preset-linker.d.ts","sourceRoot":"","sources":["../../../../src/common/components/msem-preset-linker/msem-preset-linker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,QAAQ,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;IACF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,KAAK;;;CAGjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,aAAa,EACb,QAAQ,GACT,EAAE,KAAK,kDA+DP"}
@@ -12,7 +12,7 @@ export const MODES = {
12
12
  EDITING: 1,
13
13
  };
14
14
  export const PRESET_ATTRIBUTE = "data-msem-preset";
15
- export default function MseMPresetLinker({ lang, options, urls, children, }) {
15
+ export default function MseMPresetLinker({ lang, options, urls, noLodgingPage, children, }) {
16
16
  const { cmsMode } = useUbloContext();
17
17
  const [mode, setMode] = React.useState(MODES.CONNECTED);
18
18
  const [target, setTarget] = React.useState(null);
@@ -50,5 +50,5 @@ export default function MseMPresetLinker({ lang, options, urls, children, }) {
50
50
  useMsemPresets({ mode });
51
51
  if (!cmsMode)
52
52
  return null;
53
- return (_jsxs("div", { className: css.linker, children: [_jsx(Actions, { mode: mode, setMode: setMode }), _jsx(Overlays, { mode: mode, target: target, setTarget: setTarget }), _jsx(EditorDialog, { lang: lang, options: options, target: target, updatePreset: updatePreset, closeEditor: closeEditor, removeObsoletePreset: removeObsoletePreset, urls: urlsWithOverride, children: children })] }));
53
+ return (_jsxs("div", { className: css.linker, children: [_jsx(Actions, { mode: mode, setMode: setMode }), _jsx(Overlays, { mode: mode, target: target, setTarget: setTarget }), _jsx(EditorDialog, { lang: lang, options: options, target: target, updatePreset: updatePreset, closeEditor: closeEditor, removeObsoletePreset: removeObsoletePreset, urls: urlsWithOverride, noLodgingPage: noLodgingPage, children: children })] }));
54
54
  }
@@ -5,15 +5,16 @@ const {
5
5
  const {
6
6
  resort
7
7
  } = publicRuntimeConfig;
8
- const host = "https://instructors-book-server.carnet-rouge-esf.com";
9
- const authorization = "00q2qa545018261l252gg3414t3qa2";
8
+ const carnetRougeApi = "https://services.carnet-rouge-esf.app/api";
9
+ const authorizationCarnetRouge = "6bdecf9053927dcc7e10923a2cc603a4";
10
10
  const fetcher = async (url, body) => {
11
11
  const res = await fetch(url, {
12
12
  method: "POST",
13
13
  headers: {
14
- "content-type": "application/json;charset=utf-8",
15
- Authorization: authorization,
16
- schoolcode: resort
14
+ ...(body ? {
15
+ "content-type": "application/json;charset=utf-8"
16
+ } : {}),
17
+ Authorization: authorizationCarnetRouge
17
18
  },
18
19
  body: body ? JSON.stringify(body) : undefined
19
20
  });
@@ -21,7 +22,8 @@ const fetcher = async (url, body) => {
21
22
  };
22
23
  export async function fetchInstructors(lang, body = {}) {
23
24
  try {
24
- return fetcher(`${host}/api/instructors-book/${resort}/${lang}`, {
25
+ const url = `${carnetRougeApi}/annuaire/public/moniteurs/${resort}/${lang}`;
26
+ return fetcher(url, {
25
27
  ...body,
26
28
  project: true
27
29
  });
@@ -32,7 +34,8 @@ export async function fetchInstructors(lang, body = {}) {
32
34
  }
33
35
  export async function fetchInstructor(lang, uri) {
34
36
  try {
35
- return fetcher(`${host}/api/instructors-book/${resort}/${lang}/${uri}`);
37
+ const url = `${carnetRougeApi}/annuaire/public/moniteur/${resort}/${lang}/${uri}`;
38
+ return fetcher(url);
36
39
  } catch (e) {
37
40
  console.warn(e);
38
41
  return {};
@@ -40,7 +43,8 @@ export async function fetchInstructor(lang, uri) {
40
43
  }
41
44
  export const fetchRandomInstructors = async (lang, tags, nbInstructor) => {
42
45
  try {
43
- return fetcher(`${host}/api/instructors-book/${resort}/${lang}/byTags`, {
46
+ const url = `${carnetRougeApi}/annuaire/public/moniteurs/${resort}/${lang}/by-tags`;
47
+ return fetcher(url, {
44
48
  tags,
45
49
  size: nbInstructor
46
50
  });
@@ -76,7 +76,7 @@ export default function Book({
76
76
  loading: loading
77
77
  }), _jsx(List, {
78
78
  search: search,
79
- instructors: context.instructors,
79
+ instructors: context.moniteurs,
80
80
  trombi: isTrombi
81
81
  })]
82
82
  });
@@ -18,8 +18,8 @@ export default function Filters({
18
18
  lang
19
19
  } = useUbloContext();
20
20
  const {
21
- activities,
22
- languages
21
+ disciplines: activities,
22
+ langues: languages
23
23
  } = context;
24
24
  const formatedActivities = ["", ...activities.map(({
25
25
  code,
@@ -1,3 +1,6 @@
1
- import instructorsBook from "./instructors-book";
2
- export { fetchInstructor, fetchInstructorsContext } from "./instructors-book";
3
- export default instructorsBook;
1
+ import * as API from "./api";
2
+ import Book from "./book";
3
+ import Sheet from "./sheet";
4
+ import Suggestions from "./suggestions";
5
+ import prefixes from "./prefixes";
6
+ export { Book, Sheet, Suggestions, API, prefixes };
@@ -22,8 +22,8 @@ export default function Instructor({
22
22
  lang
23
23
  } = useUbloContext();
24
24
  const {
25
- firstname,
26
- lastname,
25
+ prenom,
26
+ nom,
27
27
  photo,
28
28
  uri
29
29
  } = instructor;
@@ -66,7 +66,7 @@ export default function Instructor({
66
66
  loading: "lazy",
67
67
  src: picture,
68
68
  className: css.imageBackground,
69
- alt: `${firstname} ${lastname}`,
69
+ alt: `${prenom} ${nom}`,
70
70
  width: "170",
71
71
  height: "220"
72
72
  }), picture ? _jsxs(_Fragment, {
@@ -76,7 +76,7 @@ export default function Instructor({
76
76
  loading: "lazy",
77
77
  src: picture,
78
78
  className: css.image,
79
- alt: `${firstname} ${lastname}`,
79
+ alt: `${prenom} ${nom}`,
80
80
  onLoad: stopLoading,
81
81
  onError: setFallbackPicture,
82
82
  width: "170",
@@ -94,10 +94,10 @@ export default function Instructor({
94
94
  className: css.name,
95
95
  children: [_jsxs("span", {
96
96
  className: css.firstName,
97
- children: [Utils.formatNames(firstname), " "]
97
+ children: [Utils.formatNames(prenom), " "]
98
98
  }), _jsx("span", {
99
99
  className: css.lastName,
100
- children: Utils.formatNames(lastname)
100
+ children: Utils.formatNames(nom)
101
101
  })]
102
102
  })
103
103
  })]
@@ -1,178 +1,47 @@
1
1
  import * as React from "react";
2
- import { useEffect, useState } from "react";
3
- import Container from "./container";
4
- import Loader from "./loader";
5
- import { flags, PersonIcon, OverlayIcon } from "./icons";
6
- import getMessage from "./messages";
7
- import { formatNames } from "./utils";
8
- import { filter } from "./list-utils";
2
+ import classNames from "classnames";
3
+ import { useUbloContext } from "ublo/with-ublo";
4
+ import * as Utils from "./utils";
5
+ import Instructor from "./instructor";
6
+ import { message } from "./messages";
7
+ import css from "./list.module.css";
9
8
  import { jsx as _jsx } from "react/jsx-runtime";
10
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
11
- import { Fragment as _Fragment } from "react/jsx-runtime";
12
- const List = ({
10
+ export default function List({
11
+ search = "",
13
12
  instructors,
14
- activities,
15
- languages,
13
+ fromSuggestions,
14
+ formSendFunction,
15
+ formFields,
16
16
  trombi,
17
- lang,
18
- activity,
19
- language,
20
- selectInstructor,
21
- selectFilter
22
- }) => {
23
- const [search, setSearch] = useState("");
24
- const [displayedInstructors, setDisplayedInstructors] = useState(filter(instructors));
25
- const texts = getMessage(lang);
26
- useEffect(() => {
27
- const displayedInstructors = filter(instructors, search);
28
- setDisplayedInstructors(displayedInstructors);
29
- }, [instructors, search]);
30
- const changeFilter = filter => e => {
31
- if (selectFilter !== undefined) {
32
- selectFilter(filter, e.target.value);
33
- }
34
- };
35
- const renderHeader = () => {
36
- return _jsxs("div", {
37
- className: "instructors-book-list__top",
38
- children: [_jsxs("div", {
39
- className: "instructors-book-list__top-left",
40
- children: [_jsx("h2", {
41
- className: "instructors-book-list__title",
42
- children: texts["instructors-book-title-1"]
43
- }), _jsx("div", {
44
- className: "instructors-book-list__tagline",
45
- children: texts["instructors-book-title-2"]
46
- }), _jsx("div", {
47
- className: "instructors-book-list__helper",
48
- children: texts["instructors-book-intro"]
49
- })]
50
- }), _jsxs("div", {
51
- className: "instructors-book-list__filters",
52
- children: [_jsxs("div", {
53
- className: "instructors-book-list__filters-title",
54
- children: [texts["instructors-book-search-1"], " ", _jsx("span", {
55
- className: "instructors-book-list__filters-title-span",
56
- children: texts["instructors-book-search-2"]
57
- })]
58
- }), _jsx("div", {
59
- className: "instructors-book-list__input-filler",
60
- children: _jsx("input", {
61
- value: search,
62
- className: "instructors-book-list__input",
63
- placeholder: texts["instructors-book-placeholder-search"],
64
- onChange: e => setSearch(e.target.value.toLowerCase())
65
- })
66
- }), _jsx("label", {
67
- htmlFor: "instructors-book-practice-filter",
68
- className: "instructors-book-list__label",
69
- children: texts["instructors-book-filter-activity"]
70
- }), _jsx("div", {
71
- className: "instructors-book-list__input-filler instructors-book-list__input-filler--select",
72
- children: _jsxs("select", {
73
- value: activity,
74
- id: "instructors-book-practice-filter",
75
- className: "instructors-book-list__input instructors-book-list__input--select",
76
- onChange: changeFilter("activity"),
77
- children: [_jsx("option", {
78
- value: "",
79
- children: texts["instructors-book-placeholder-activity"]
80
- }), activities && activities.map(({
81
- code,
82
- label
83
- }) => _jsx("option", {
84
- value: code,
85
- children: label
86
- }, code))]
87
- })
88
- }), _jsx("label", {
89
- htmlFor: "instructors-book-language-filter",
90
- className: "instructors-book-list__label",
91
- children: texts["instructors-book-filter-language"]
92
- }), _jsx("div", {
93
- className: "instructors-book-list__input-filler instructors-book-list__input-filler--select",
94
- children: _jsxs("select", {
95
- value: language,
96
- id: "instructors-book-language-filter",
97
- className: "instructors-book-list__input instructors-book-list__input--select",
98
- onChange: changeFilter("language"),
99
- children: [_jsx("option", {
100
- value: "",
101
- children: texts["instructors-book-placeholder-language"]
102
- }), languages && languages.map(({
103
- code,
104
- label
105
- }) => _jsx("option", {
106
- value: code,
107
- children: label
108
- }, code))]
109
- })
110
- })]
111
- })]
112
- });
113
- };
114
- const renderInstructor = (instructor, index) => {
115
- const {
116
- firstname,
117
- lastname,
118
- photo,
119
- activities,
120
- languages,
121
- uri
122
- } = instructor;
123
- return _jsxs(Container, {
124
- trombi: trombi,
125
- className: "instructors-book-list__instructor",
126
- ...selectInstructor(uri),
127
- children: [_jsxs("div", {
128
- className: "instructors-book-list__instructor-image-container",
129
- children: [!trombi && _jsx("div", {
130
- className: "instructors-book-list__instructor-overlay",
131
- children: _jsx(OverlayIcon, {
132
- className: "instructors-book-list__instructor-overlay-icon"
133
- })
134
- }), photo ? _jsx("img", {
135
- loading: "lazy",
136
- src: photo,
137
- className: "instructors-book-list__instructor-image",
138
- alt: `${firstname} ${lastname}`
139
- }) : _jsx(PersonIcon, {
140
- className: "instructors-book-list__instructor-imageplaceholder"
141
- })]
142
- }), _jsxs("div", {
143
- className: "instructors-book-list__instructor-name",
144
- children: [formatNames(firstname), " ", _jsx("span", {
145
- className: "instructors-book-list__instructor-lastname",
146
- children: formatNames(lastname)
147
- })]
148
- }), trombi && _jsxs(_Fragment, {
149
- children: [_jsx("div", {
150
- className: "instructors-book-list__instructor-practices",
151
- children: activities && activities.map(({
152
- label
153
- }) => label).join(" - ")
154
- }), _jsx("div", {
155
- className: "instructors-book-list__instructor-langs",
156
- children: languages && languages.map(({
157
- code,
158
- label
159
- }) => {
160
- const Flag = flags[code];
161
- return _jsx(Flag, {
162
- className: "instructors-book-list__instructor-lang",
163
- title: label
164
- }, code);
165
- })
166
- })]
167
- })]
168
- }, uri || `instructor-${index}`);
169
- };
17
+ popup
18
+ }) {
19
+ const {
20
+ lang
21
+ } = useUbloContext();
22
+ const displayedInstructors = fromSuggestions ? instructors : Utils.filter(instructors, search);
23
+ const listCountMessageCode = displayedInstructors?.length > 1 ? "instructors" : "instructor";
24
+ const classes = classNames(css.container, {
25
+ [css.containerSuggestions]: fromSuggestions
26
+ });
170
27
  return _jsxs("div", {
171
- className: "instructors-book-list",
172
- children: [renderHeader(), _jsx("div", {
173
- className: "instructors-book-list__inner",
174
- children: displayedInstructors ? displayedInstructors.map((instructor, index) => renderInstructor(instructor, index)) : _jsx(Loader, {})
28
+ className: classes,
29
+ children: [!fromSuggestions && _jsxs("div", {
30
+ className: css.listCount,
31
+ children: [_jsx("b", {
32
+ children: displayedInstructors.length
33
+ }), " ", message(lang, listCountMessageCode)]
34
+ }), _jsx("div", {
35
+ className: css.inner,
36
+ children: displayedInstructors?.map(instructor => {
37
+ return _jsx(Instructor, {
38
+ instructor: instructor,
39
+ trombi: trombi,
40
+ formFields: formFields,
41
+ formSendFunction: formSendFunction,
42
+ popup: popup
43
+ }, instructor.uri);
44
+ })
175
45
  })]
176
46
  });
177
- };
178
- export default List;
47
+ }
@@ -1,42 +1,41 @@
1
- const messages = {
1
+ const locales = {
2
2
  fr: {
3
- "instructors-book-title-1": "le book",
4
- "instructors-book-title-2": "des moniteurs",
5
- "instructors-book-intro": "Cliquez sur un moniteur pour afficher ses informations",
6
- "instructors-book-search-1": "recherchez",
7
- "instructors-book-search-2": "votre moniteur",
8
- "instructors-book-filter-activity": "Filtrer par pratique",
9
- "instructors-book-filter-language": "Filtrer par langue",
10
- "instructors-book-placeholder-search": "Nom, prénom...",
11
- "instructors-book-placeholder-activity": "Sélectionnez une pratique",
12
- "instructors-book-placeholder-language": "Sélectionnez une langue",
13
- "instructors-book-activities": "Mes spécialités sont : ",
14
- "instructors-book-about": "À propos",
15
- "instructors-book-and": " et ",
16
- "instructors-book-back-to-list": "Retour"
3
+ "search-label": "Chercher un moniteur",
4
+ "search-placeholder": "Nom, prénom...",
5
+ "activity-label": "Quelle pratique ?",
6
+ "language-label": "Quelle langue ?",
7
+ instructors: "moniteurs trouvés",
8
+ instructor: "moniteur trouvé",
9
+ activities: "Activités pratiquées",
10
+ and: "et",
11
+ languages: "Langues parlées",
12
+ about: "À propos",
13
+ contact: "Quand souhaitez-vous skier avec moi ?",
14
+ "suggestions-title": "Les moniteurs qui vous proposent ce cours",
15
+ "suggestions-button": "Voir tous les moniteurs",
16
+ "see-more": "Voir plus",
17
+ "go-back": "Retour"
17
18
  },
18
19
  en: {
19
- "instructors-book-title-1": "ski instructors'",
20
- "instructors-book-title-2": "book",
21
- "instructors-book-intro": "Click an instructor bellow to display his informations",
22
- "instructors-book-search-1": "search",
23
- "instructors-book-search-2": "your instructor",
24
- "instructors-book-filter-activity": "Filter by discipline",
25
- "instructors-book-filter-language": "Filter by spoken language",
26
- "instructors-book-placeholder-search": "Lastname, firstname...",
27
- "instructors-book-placeholder-activity": "Select a discipline",
28
- "instructors-book-placeholder-language": "Select a language",
29
- "instructors-book-activities": "My disciplines are : ",
30
- "instructors-book-about": "About",
31
- "instructors-book-and": " and ",
32
- "instructors-book-back-to-list": "Go back"
20
+ "search-label": "Search an instructor",
21
+ "search-placeholder": "Lastname, firstname...",
22
+ "activity-label": "Which activity?",
23
+ "language-label": "Which language?",
24
+ instructors: "instructors found",
25
+ instructor: "instructor found",
26
+ activities: "Activities",
27
+ and: "and",
28
+ languages: "Spoken languages",
29
+ about: "About",
30
+ contact: "When would you like to ski with me?",
31
+ "suggestions-title": "The instructors who offer you this course",
32
+ "suggestions-button": "See all instructors",
33
+ "see-more": "See more",
34
+ "go-back": "Go back"
33
35
  }
34
36
  };
35
- const getMessage = lang => {
36
- if (messages[lang] !== undefined) {
37
- return messages[lang];
38
- } else {
39
- return messages.en;
40
- }
41
- };
42
- export default getMessage;
37
+ export const message = (lang, id) => {
38
+ const locale = lang === "fr" ? "fr" : "en";
39
+ const messages = locales[locale];
40
+ return messages[id] || `??${id}??`;
41
+ };