ublo-lib 1.19.2 → 1.19.4

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 (24) hide show
  1. package/es/common/components/msem-preset-editor/editor-dialog.d.ts.map +1 -1
  2. package/es/common/components/msem-preset-editor/editor-dialog.js +1 -1
  3. package/es/common/components/msem-preset-editor/editors/elloha.d.ts +2 -1
  4. package/es/common/components/msem-preset-editor/editors/elloha.d.ts.map +1 -1
  5. package/es/common/components/msem-preset-editor/editors/elloha.js +5 -3
  6. package/es/common/components/msem-preset-editor/editors/lodgings.d.ts +1 -1
  7. package/es/common/components/msem-preset-editor/editors/lodgings.d.ts.map +1 -1
  8. package/es/common/components/msem-preset-editor/editors/ski-passes.d.ts +2 -1
  9. package/es/common/components/msem-preset-editor/editors/ski-passes.d.ts.map +1 -1
  10. package/es/common/components/msem-preset-editor/editors/ski-passes.js +5 -3
  11. package/es/common/components/msem-preset-editor/editors/standard-products.d.ts +2 -1
  12. package/es/common/components/msem-preset-editor/editors/standard-products.d.ts.map +1 -1
  13. package/es/common/components/msem-preset-editor/editors/standard-products.js +5 -3
  14. package/es/common/components/msem-preset-editor/editors/vakario.d.ts +2 -1
  15. package/es/common/components/msem-preset-editor/editors/vakario.d.ts.map +1 -1
  16. package/es/common/components/msem-preset-editor/editors/vakario.js +5 -3
  17. package/es/common/components/msem-preset-editor/msem-preset-editor.js +1 -1
  18. package/es/common/components/msem-preset-linker/hooks/use-msem-presets.js +2 -2
  19. package/es/common/components/plausible/hooks/use-plausible.js +11 -12
  20. package/es/common/components/plausible/plausible.js +3 -4
  21. package/es/common/components/plausible/services/callback.js +114 -9
  22. package/es/esf/components/week-picker-2/messages.js +7 -0
  23. package/es/esf/hooks/use-affiliation.js +2 -3
  24. package/package.json +3 -3
@@ -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,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,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"}
@@ -12,5 +12,5 @@ export default function EditorDialog({ lang, options, urls, target, updatePreset
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, 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.CleaningServices, {}), "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, closeOnBackdropClick: false, showAsModal: 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.CleaningServices, {}), "Nettoyer le preset obsol\u00E8te"] })), _jsx(Button, { variant: "secondary", onClick: closeEditor, children: "Annuler" }), _jsx(Button, { variant: "primary", onClick: updateNewPreset, children: "Valider" })] })] }));
16
16
  }
@@ -7,8 +7,9 @@ type Props = {
7
7
  preset: Record<string, any> | null;
8
8
  setPreset: React.Dispatch<React.SetStateAction<Record<string, any> | null>>;
9
9
  setShowPresetDialog: React.Dispatch<React.SetStateAction<boolean>>;
10
+ onChange?: (preset: Record<string, any> | null) => void;
10
11
  testPreset: () => void;
11
12
  };
12
- export default function Elloha({ preset, setPreset, stay, setShowPresetDialog, testPreset, }: Props): import("react/jsx-runtime").JSX.Element;
13
+ export default function Elloha({ preset, setPreset, stay, setShowPresetDialog, onChange, testPreset, }: Props): import("react/jsx-runtime").JSX.Element;
13
14
  export {};
14
15
  //# sourceMappingURL=elloha.d.ts.map
@@ -1 +1 @@
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;AAM/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;CACxB,CAAC;AAWF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,MAAM,EACN,SAAS,EACT,IAAI,EACJ,mBAAmB,EACnB,UAAU,GACX,EAAE,KAAK,2CAyFP"}
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;AAM/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,2CA2FP"}
@@ -7,7 +7,7 @@ import css from "./elloha.module.css";
7
7
  const DEFAULT_DATA = {
8
8
  groupNames: [],
9
9
  };
10
- export default function Elloha({ preset, setPreset, stay, setShowPresetDialog, testPreset, }) {
10
+ export default function Elloha({ preset, setPreset, stay, setShowPresetDialog, onChange, testPreset, }) {
11
11
  const savedPreset = React.useRef(preset);
12
12
  const [loading, setLoading] = React.useState(false);
13
13
  const [groupNames, setGroupNames] = React.useState([]);
@@ -44,15 +44,17 @@ export default function Elloha({ preset, setPreset, stay, setShowPresetDialog, t
44
44
  }, [error, merchant, stay.from]);
45
45
  React.useEffect(() => {
46
46
  setPreset((current = {}) => {
47
- return {
47
+ const newPreset = {
48
48
  ...current,
49
49
  presets: {
50
50
  ...(current?.presets || {}),
51
51
  groupNames: selectedGroups,
52
52
  },
53
53
  };
54
+ onChange?.(newPreset);
55
+ return newPreset;
54
56
  });
55
- }, [selectedGroups, setPreset]);
57
+ }, [onChange, selectedGroups, setPreset]);
56
58
  return (_jsxs(Form, { title: "Presets activit\u00E9s Elloha", width: 420, preset: preset, buttonsActions: {
57
59
  testPreset,
58
60
  cancelPreset,
@@ -8,7 +8,7 @@ type Props = {
8
8
  setPreset: React.Dispatch<React.SetStateAction<Record<string, any> | null>>;
9
9
  setShowPresetDialog: React.Dispatch<React.SetStateAction<boolean>>;
10
10
  testPreset: () => void;
11
- onChange: (preset: Record<string, any>) => void;
11
+ onChange?: (preset: Record<string, any> | null) => void;
12
12
  noLodgingPage?: boolean;
13
13
  baseUrl: string;
14
14
  };
@@ -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,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
+ {"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"}
@@ -7,9 +7,10 @@ type Props = {
7
7
  preset: Record<string, any> | null;
8
8
  setPreset: React.Dispatch<React.SetStateAction<Record<string, any> | null>>;
9
9
  setShowPresetDialog: React.Dispatch<React.SetStateAction<boolean>>;
10
+ onChange?: (preset: Record<string, any> | null) => void;
10
11
  testPreset: () => void;
11
12
  baseUrl: string;
12
13
  };
13
- export default function SkiPasses({ preset, setPreset, stay, setShowPresetDialog, testPreset, baseUrl, }: Props): import("react/jsx-runtime").JSX.Element;
14
+ export default function SkiPasses({ preset, setPreset, stay, setShowPresetDialog, onChange, testPreset, baseUrl, }: Props): import("react/jsx-runtime").JSX.Element;
14
15
  export {};
15
16
  //# sourceMappingURL=ski-passes.d.ts.map
@@ -1 +1 @@
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,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,UAAU,EACV,OAAO,GACR,EAAE,KAAK,2CAmRP"}
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"}
@@ -26,7 +26,7 @@ const ACTIVITIES_LABELS = {
26
26
  "ski-activite": "Ski + Activités",
27
27
  luge: "Luge sur rails",
28
28
  };
29
- export default function SkiPasses({ preset, setPreset, stay, setShowPresetDialog, testPreset, baseUrl, }) {
29
+ export default function SkiPasses({ preset, setPreset, stay, setShowPresetDialog, onChange, testPreset, baseUrl, }) {
30
30
  const savedPreset = React.useRef(preset);
31
31
  const [loading, setLoading] = React.useState(false);
32
32
  const [catalogs, setCatalogs] = React.useState(null);
@@ -156,7 +156,7 @@ export default function SkiPasses({ preset, setPreset, stay, setShowPresetDialog
156
156
  }, [catalog, merchant]);
157
157
  React.useEffect(() => {
158
158
  setPreset((current = {}) => {
159
- return {
159
+ const newPreset = {
160
160
  ...current,
161
161
  options: {
162
162
  ...(current?.options || {}),
@@ -168,8 +168,10 @@ export default function SkiPasses({ preset, setPreset, stay, setShowPresetDialog
168
168
  },
169
169
  url: baseUrl || undefined,
170
170
  };
171
+ onChange?.(newPreset);
172
+ return newPreset;
171
173
  });
172
- }, [catalog, data, baseUrl, setPreset]);
174
+ }, [catalog, data, baseUrl, setPreset, onChange]);
173
175
  return (_jsxs(Form, { title: "Presets forfaits", width: 420, preset: preset, buttonsActions: {
174
176
  testPreset,
175
177
  cancelPreset,
@@ -8,8 +8,9 @@ type Props = {
8
8
  preset: Record<string, any> | null;
9
9
  setPreset: React.Dispatch<React.SetStateAction<Record<string, any> | null>>;
10
10
  setShowPresetDialog: React.Dispatch<React.SetStateAction<boolean>>;
11
+ onChange?: (preset: Record<string, any> | null) => void;
11
12
  testPreset: () => void;
12
13
  };
13
- export default function StandardProducts({ preset, setPreset, facet, setShowPresetDialog, testPreset, }: Props): import("react/jsx-runtime").JSX.Element;
14
+ export default function StandardProducts({ preset, setPreset, facet, setShowPresetDialog, onChange, testPreset, }: Props): import("react/jsx-runtime").JSX.Element;
14
15
  export {};
15
16
  //# sourceMappingURL=standard-products.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"standard-products.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/msem-preset-editor/editors/standard-products.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5E,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAMF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,MAAM,EACN,SAAS,EACT,KAAK,EACL,mBAAmB,EACnB,UAAU,GACX,EAAE,KAAK,2CA2EP"}
1
+ {"version":3,"file":"standard-products.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/msem-preset-editor/editors/standard-products.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5E,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAMF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,MAAM,EACN,SAAS,EACT,KAAK,EACL,mBAAmB,EACnB,QAAQ,EACR,UAAU,GACX,EAAE,KAAK,2CA6EP"}
@@ -6,7 +6,7 @@ import * as API from "../services/api";
6
6
  const DEFAULT_DATA = {
7
7
  productCategory: "",
8
8
  };
9
- export default function StandardProducts({ preset, setPreset, facet, setShowPresetDialog, testPreset, }) {
9
+ export default function StandardProducts({ preset, setPreset, facet, setShowPresetDialog, onChange, testPreset, }) {
10
10
  const savedPreset = React.useRef(preset);
11
11
  const [loading, setLoading] = React.useState(false);
12
12
  const [productCategories, setProductCategories] = React.useState([]);
@@ -41,15 +41,17 @@ export default function StandardProducts({ preset, setPreset, facet, setShowPres
41
41
  }, [facet, merchant]);
42
42
  React.useEffect(() => {
43
43
  setPreset((current = {}) => {
44
- return {
44
+ const newPreset = {
45
45
  ...current,
46
46
  presets: {
47
47
  ...(current?.presets || {}),
48
48
  productCategory: selectedProductCategory,
49
49
  },
50
50
  };
51
+ onChange?.(newPreset);
52
+ return newPreset;
51
53
  });
52
- }, [selectedProductCategory, setPreset]);
54
+ }, [onChange, selectedProductCategory, setPreset]);
53
55
  return (_jsx(Form, { title: "Presets activit\u00E9s Elloha", width: 420, preset: preset, buttonsActions: {
54
56
  testPreset,
55
57
  cancelPreset,
@@ -7,8 +7,9 @@ type Props = {
7
7
  preset: Record<string, any> | null;
8
8
  setPreset: React.Dispatch<React.SetStateAction<Record<string, any> | null>>;
9
9
  setShowPresetDialog: React.Dispatch<React.SetStateAction<boolean>>;
10
+ onChange?: (preset: Record<string, any> | null) => void;
10
11
  testPreset: () => void;
11
12
  };
12
- export default function Vakario({ preset, setPreset, setShowPresetDialog, testPreset, }: Props): import("react/jsx-runtime").JSX.Element;
13
+ export default function Vakario({ preset, setPreset, setShowPresetDialog, onChange, testPreset, }: Props): import("react/jsx-runtime").JSX.Element;
13
14
  export {};
14
15
  //# sourceMappingURL=vakario.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vakario.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/msem-preset-editor/editors/vakario.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/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;CACxB,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,MAAM,EACN,SAAS,EACT,mBAAmB,EACnB,UAAU,GACX,EAAE,KAAK,2CAyNP"}
1
+ {"version":3,"file":"vakario.d.ts","sourceRoot":"","sources":["../../../../../src/common/components/msem-preset-editor/editors/vakario.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/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;AASF,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,MAAM,EACN,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,UAAU,GACX,EAAE,KAAK,2CA2NP"}
@@ -9,7 +9,7 @@ const DEFAULT_DATA = {
9
9
  categoryCodes: "",
10
10
  levelCodes: "",
11
11
  };
12
- export default function Vakario({ preset, setPreset, setShowPresetDialog, testPreset, }) {
12
+ export default function Vakario({ preset, setPreset, setShowPresetDialog, onChange, testPreset, }) {
13
13
  const savedPreset = React.useRef(preset);
14
14
  const [loading, setLoading] = React.useState(false);
15
15
  const [kindCodes, setKindCodes] = React.useState([]);
@@ -146,7 +146,7 @@ export default function Vakario({ preset, setPreset, setShowPresetDialog, testPr
146
146
  React.useEffect(() => {
147
147
  setPreset((current = {}) => {
148
148
  const { kindCodes, ageCodes, categoryCodes, levelCodes } = data;
149
- return {
149
+ const newPreset = {
150
150
  ...current,
151
151
  presets: {
152
152
  ...(current?.presets || {}),
@@ -156,8 +156,10 @@ export default function Vakario({ preset, setPreset, setShowPresetDialog, testPr
156
156
  levelCodes: levelCodes ? [levelCodes] : undefined,
157
157
  },
158
158
  };
159
+ onChange?.(newPreset);
160
+ return newPreset;
159
161
  });
160
- }, [data, setPreset]);
162
+ }, [data, onChange, setPreset]);
161
163
  return (_jsxs(Form, { title: "Presets activit\u00E9s Vakario", width: 420, preset: preset, buttonsActions: {
162
164
  testPreset,
163
165
  cancelPreset,
@@ -119,7 +119,7 @@ export default function MseMPresetEditor({ lang, options, urls, selectedPreset,
119
119
  React.cloneElement(children, {
120
120
  resort,
121
121
  setResort,
122
- }), _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, 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(Tooltip, { content: "Tester dans le widget MseM", children: _jsx(Button, { variant: "secondary", disabled: !preset?.widget, className: css.testButton, onClick: testPreset, children: _jsx(Icons.OpenInBrowser, {}) }) }), _jsx(Input, { type: "text", className: css.url, value: presetUrl, onClick: copyUrl, disabled: !preset?.widget || presetUrl === "", placeholder: !preset
122
+ }), _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, 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(Tooltip, { content: "Tester dans le widget MseM", children: _jsx(Button, { variant: "secondary", disabled: !preset?.widget, className: css.testButton, onClick: testPreset, children: _jsx(Icons.OpenInBrowser, {}) }) }), _jsx(Input, { type: "text", className: css.url, value: presetUrl, onClick: copyUrl, disabled: !preset?.widget || presetUrl === "", placeholder: !preset
123
123
  ? "Aucun preset sélectionné"
124
124
  : "Preset incompatible au format URL", readOnly: true })] })] }));
125
125
  }
@@ -27,9 +27,9 @@ export default function useMsemPresets({ mode }) {
27
27
  }, []);
28
28
  React.useEffect(() => {
29
29
  if (isEnabled) {
30
- window.addEventListener("click", handleSectionClick);
30
+ document.addEventListener("click", handleSectionClick);
31
31
  return () => {
32
- window.removeEventListener("click", handleSectionClick);
32
+ document.removeEventListener("click", handleSectionClick);
33
33
  };
34
34
  }
35
35
  }, [lang, handleSectionClick, isEnabled, path]);
@@ -8,16 +8,7 @@ const {
8
8
  const {
9
9
  plausibleDomain
10
10
  } = publicRuntimeConfig;
11
- const usePlausible = overridenDomain => {
12
- const [loaded, setLoaded] = React.useState(false);
13
- React.useEffect(() => {
14
- if (!overridenDomain && !plausibleDomain) return;
15
- load();
16
- setLoaded(true);
17
- }, [overridenDomain]);
18
- return [loaded, setLoaded];
19
- };
20
- const useGoal = (goal, props, overridenDomain) => {
11
+ export default function useGoal(goal, props, overridenDomain) {
21
12
  const [loaded] = usePlausible(overridenDomain);
22
13
  React.useEffect(() => {
23
14
  if (!loaded || !window.plausible) return;
@@ -26,5 +17,13 @@ const useGoal = (goal, props, overridenDomain) => {
26
17
  };
27
18
  sendGoal(goal, props || defaultProps);
28
19
  }, [goal, loaded, props]);
29
- };
30
- export default useGoal;
20
+ }
21
+ function usePlausible(overridenDomain) {
22
+ const [loaded, setLoaded] = React.useState(false);
23
+ React.useEffect(() => {
24
+ if (!overridenDomain && !plausibleDomain) return;
25
+ load();
26
+ setLoaded(true);
27
+ }, [overridenDomain]);
28
+ return [loaded, setLoaded];
29
+ }
@@ -9,10 +9,10 @@ const {
9
9
  plausibleDomain
10
10
  } = publicRuntimeConfig;
11
11
  const DEFAULT_SOURCE = "https://plausible.io/js/script.file-downloads.outbound-links.js";
12
- const PlausibleScript = ({
12
+ export default function PlausibleScript({
13
13
  lang,
14
14
  source = DEFAULT_SOURCE
15
- }) => {
15
+ }) {
16
16
  const hasI18n = typeof plausibleDomain === "object";
17
17
  if (hasI18n && !lang) {
18
18
  console.warn("PlausibleScript: the lang props is mandatory if you want to use a specific domain for each lang");
@@ -23,5 +23,4 @@ const PlausibleScript = ({
23
23
  "data-domain": domain,
24
24
  src: source
25
25
  });
26
- };
27
- export default PlausibleScript;
26
+ }
@@ -15,48 +15,153 @@ export const MseM = ({
15
15
  orderId,
16
16
  cartId
17
17
  }) => {
18
+ const hoteId = getBusinessProvider();
18
19
  let name = EVENT_NAMES[event];
19
20
  switch (event) {
20
21
  case "view_item":
22
+ {
23
+ const formatedItems = formatPeekPerformancesItem(items, ["kind", "price"]);
24
+ const rawData = JSON.stringify({
25
+ products: formatedItems,
26
+ hoteId
27
+ });
28
+ sendGoal(name, {
29
+ Name: items[0]?.gtmData.item_name,
30
+ Brand: items[0]?.gtmData.item_brand,
31
+ Kind: items[0]?.gtmData.item_category,
32
+ Activity: items[0]?.gtmData.item_category2,
33
+ Code: items[0]?.gtmData.item_category3,
34
+ Product: items[0]?.gtmData.item_variant,
35
+ rawData
36
+ });
37
+ break;
38
+ }
21
39
  case "add_to_cart":
22
40
  {
41
+ const formatedItems = formatPeekPerformancesItem(items, ["kind", "quantity", "price"]);
42
+ const rawData = JSON.stringify({
43
+ products: formatedItems,
44
+ hoteId
45
+ });
23
46
  sendGoal(name, {
24
47
  Name: items[0]?.gtmData.item_name,
25
48
  Brand: items[0]?.gtmData.item_brand,
26
49
  Kind: items[0]?.gtmData.item_category,
27
50
  Activity: items[0]?.gtmData.item_category2,
28
51
  Code: items[0]?.gtmData.item_category3,
29
- Product: items[0]?.gtmData.item_variant
52
+ Product: items[0]?.gtmData.item_variant,
53
+ rawData
30
54
  });
31
55
  break;
32
56
  }
33
57
  case "checkout":
34
58
  {
59
+ const formatedItems = formatPeekPerformancesItem(items, ["kind", "quantity", "price"]);
60
+ const rawData = JSON.stringify({
61
+ products: formatedItems,
62
+ hoteId
63
+ });
35
64
  sendGoal(name, {
36
- cartId
65
+ cartId,
66
+ rawData
37
67
  });
38
68
  break;
39
69
  }
40
70
  case "add_payment_info":
41
71
  {
72
+ const formatedItems = formatPeekPerformancesItem(items, ["kind", "quantity", "price"]);
73
+ const rawData = JSON.stringify({
74
+ products: formatedItems,
75
+ hoteId,
76
+ paymentMethod: payment_type
77
+ });
42
78
  sendGoal(name, {
43
79
  cartId,
44
- "Payment type": payment_type
80
+ "Payment type": payment_type,
81
+ rawData
45
82
  });
46
83
  break;
47
84
  }
48
85
  case "purchase":
49
86
  {
50
87
  const isFailure = execcode !== "0000";
88
+ const formatedItems = formatPeekPerformancesItem(items, ["kind", "quantity", "price"]);
89
+ const attempts = getPurchaseAttempts()[cartId] || 0;
90
+ const rawData = JSON.stringify({
91
+ products: formatedItems,
92
+ hoteId,
93
+ attempts
94
+ });
51
95
  if (isFailure) {
52
96
  name = EVENT_NAMES.payment_failure;
97
+ sendGoal(name, {
98
+ cartId,
99
+ orderId,
100
+ Code: execcode,
101
+ rawData
102
+ });
103
+ setPurchaseAttempts(cartId, attempts + 1);
104
+ } else {
105
+ sendGoal(name, {
106
+ cartId,
107
+ orderId,
108
+ Code: execcode,
109
+ rawData
110
+ });
53
111
  }
54
- sendGoal(name, {
55
- cartId,
56
- orderId,
57
- Code: execcode
58
- });
59
112
  break;
60
113
  }
61
114
  }
62
- };
115
+ };
116
+ const PURCHASE_ATTEMPTS_STORAGE_KEY = "purchase_attempts";
117
+ function getPurchaseAttempts() {
118
+ try {
119
+ return JSON.parse(window.localStorage.getItem(PURCHASE_ATTEMPTS_STORAGE_KEY));
120
+ } catch (e) {
121
+ return {};
122
+ }
123
+ }
124
+ function setPurchaseAttempts(cartId, attempts) {
125
+ const purchaseAttempts = getPurchaseAttempts();
126
+ window.localStorage.setItem(PURCHASE_ATTEMPTS_STORAGE_KEY, JSON.stringify({
127
+ ...purchaseAttempts,
128
+ [cartId]: attempts
129
+ }));
130
+ }
131
+ function formatPeekPerformancesItem(items, propertiesToRetrieve) {
132
+ return items.map(item => {
133
+ let properties = {};
134
+ if (propertiesToRetrieve.includes("kind")) {
135
+ properties = {
136
+ ...properties,
137
+ kind: item.item_category
138
+ };
139
+ }
140
+ if (propertiesToRetrieve.includes("quantity")) {
141
+ properties = {
142
+ ...properties,
143
+ quantity: item.quantity
144
+ };
145
+ }
146
+ if (propertiesToRetrieve.includes("price")) {
147
+ properties = {
148
+ ...properties,
149
+ price: item.price
150
+ };
151
+ }
152
+ return properties;
153
+ });
154
+ }
155
+ function getBusinessProvider() {
156
+ const businessProvider = window.localStorage.getItem("businessProvider");
157
+ if (businessProvider) {
158
+ try {
159
+ const {
160
+ id
161
+ } = JSON.parse(businessProvider);
162
+ if (id !== -1) {
163
+ return id;
164
+ }
165
+ } catch (e) {}
166
+ }
167
+ }
@@ -13,6 +13,13 @@ const locales = {
13
13
  "week-picker-ok": "Modify",
14
14
  "week-picker-cancel": "Cancel"
15
15
  },
16
+ es: {
17
+ "week-picker-title": "<span>¿Cuándo</span> vienes?",
18
+ "week-picker-selected-title": "<span>Vienes</span> la semana del",
19
+ "week-picker-warn": "Atención, si modifica las fechas de su estancia, se borrará su cesta",
20
+ "week-picker-ok": "Modificar",
21
+ "week-picker-cancel": "Cancelar"
22
+ },
16
23
  nl: {
17
24
  "week-picker-title": "<span>Wanneer</span> kom je?",
18
25
  "week-picker-selected-title": "<span>Keuze</span> de week van",
@@ -2,7 +2,7 @@ import * as React from "react";
2
2
  import * as Plausible from "../../common/components/plausible";
3
3
  const STORAGE_KEY = "businessProvider";
4
4
  const CHECKER_STORAGE_KEY = "businessProviderChecked";
5
- const useAffiliation = () => {
5
+ export default function useAffiliation() {
6
6
  React.useEffect(() => {
7
7
  const storedChecker = window.sessionStorage.getItem(CHECKER_STORAGE_KEY);
8
8
  const storedBusinessProvider = window.localStorage.getItem(STORAGE_KEY);
@@ -18,5 +18,4 @@ const useAffiliation = () => {
18
18
  }
19
19
  }
20
20
  }, []);
21
- };
22
- export default useAffiliation;
21
+ }
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "ublo-lib",
3
- "version": "1.19.2",
3
+ "version": "1.19.4",
4
4
  "peerDependencies": {
5
- "dt-design-system": "^3.1.4",
5
+ "dt-design-system": "^3.1.5",
6
6
  "leaflet": "^1.9.1",
7
7
  "next": "^12.0.0 || ^13.0.0",
8
8
  "react": "^18.2.0",
@@ -41,7 +41,7 @@
41
41
  "classnames": "2.3.2",
42
42
  "cors": "2.8.5",
43
43
  "cpx2": "4.2.3",
44
- "dt-design-system": "3.1.4",
44
+ "dt-design-system": "3.1.5",
45
45
  "eslint": "8.44.0",
46
46
  "eslint-config-prettier": "8.8.0",
47
47
  "eslint-config-standard": "17.1.0",