ublo-lib 1.47.55 → 1.47.57

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cart-preview.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-preview/cart-preview.js"],"names":[],"mappings":";AAYA;;;;;;4CA6FC"}
1
+ {"version":3,"file":"cart-preview.d.ts","sourceRoot":"","sources":["../../../../src/common/components/cart-preview/cart-preview.js"],"names":[],"mappings":";AAYA;;;;;;4CA0GC"}
@@ -14,6 +14,16 @@ const CartPreview = ({ lang, visible, className, pillClassName, forcePillVisibil
14
14
  const { resort } = publicRuntimeConfig;
15
15
  const [count, setCount] = React.useState(0);
16
16
  const [cart, setCart] = React.useState();
17
+ const [cartChanges, setCartChanges] = React.useState(0);
18
+ const addCartChange = React.useCallback(() => {
19
+ setCartChanges((prev) => prev + 1);
20
+ }, []);
21
+ React.useEffect(() => {
22
+ window.addEventListener("msem-cart-changed", addCartChange);
23
+ return () => {
24
+ window.removeEventListener("msem-cart-changed", addCartChange);
25
+ };
26
+ }, []);
17
27
  React.useEffect(() => {
18
28
  const cartId = window.sessionStorage.cartId;
19
29
  const getCart = async () => {
@@ -27,7 +37,7 @@ const CartPreview = ({ lang, visible, className, pillClassName, forcePillVisibil
27
37
  if (resort && cartId) {
28
38
  getCart();
29
39
  }
30
- }, [ubloLang, resort]);
40
+ }, [ubloLang, resort, cartChanges]);
31
41
  if (!cart && !forcePillVisibility)
32
42
  return null;
33
43
  if (!cart) {
@@ -1,11 +1,13 @@
1
1
  export default Booking;
2
- declare function Booking({ stay, cartUrl, channel, values, maxCPDuration, setCurrentStep, msemWidgetHost, }: {
2
+ declare function Booking({ stay, cartUrl, channel, values, maxCPDuration, currentStep, setCurrentStep, msemWidgetHost, modal, }: {
3
3
  stay: any;
4
4
  cartUrl: any;
5
5
  channel: any;
6
6
  values: any;
7
7
  maxCPDuration: any;
8
+ currentStep: any;
8
9
  setCurrentStep: any;
9
10
  msemWidgetHost: any;
11
+ modal: any;
10
12
  }): import("react/jsx-runtime").JSX.Element;
11
13
  //# sourceMappingURL=booking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"booking.d.ts","sourceRoot":"","sources":["../../../../src/esf/components/magic-box/booking.js"],"names":[],"mappings":";AAUA;;;;;;;;4CA4GC"}
1
+ {"version":3,"file":"booking.d.ts","sourceRoot":"","sources":["../../../../src/esf/components/magic-box/booking.js"],"names":[],"mappings":";AAUA;;;;;;;;;;4CAwHC"}
@@ -7,7 +7,7 @@ import { message } from "./messages";
7
7
  import { loadWidgetMseM } from "./services/widgets";
8
8
  import * as Plausible from "../../../future/components/plausible";
9
9
  import css from "./booking.module.css";
10
- const Booking = ({ stay, cartUrl, channel, values, maxCPDuration, setCurrentStep, msemWidgetHost, }) => {
10
+ const Booking = ({ stay, cartUrl, channel, values, maxCPDuration, currentStep, setCurrentStep, msemWidgetHost, modal, }) => {
11
11
  const { lang, cmsMode, config } = useUbloContext();
12
12
  const { resort } = config;
13
13
  const langPrefix = config.langPrefix.links ? `/${lang}` : "";
@@ -62,8 +62,8 @@ const Booking = ({ stay, cartUrl, channel, values, maxCPDuration, setCurrentStep
62
62
  channel,
63
63
  preview: !!cmsMode,
64
64
  cartChanged: goToCart,
65
- fullWidth: true,
66
- groundedTo: "#msem-magic-box",
65
+ fullwidth: !modal,
66
+ groundedTo: !modal ? "#msem-magic-box" : undefined,
67
67
  analytics: Plausible.callback,
68
68
  categoryCode,
69
69
  };
@@ -74,6 +74,9 @@ const Booking = ({ stay, cartUrl, channel, values, maxCPDuration, setCurrentStep
74
74
  ...engagementPresets,
75
75
  };
76
76
  window.MseM.esf(options, presets);
77
+ if (modal && currentStep === 1) {
78
+ setCurrentStep(0);
79
+ }
77
80
  });
78
81
  };
79
82
  init();
@@ -90,7 +93,13 @@ const Booking = ({ stay, cartUrl, channel, values, maxCPDuration, setCurrentStep
90
93
  resort,
91
94
  stay.from,
92
95
  stay.to,
96
+ currentStep,
97
+ setCurrentStep,
98
+ modal,
93
99
  ]);
94
- return (_jsxs("div", { className: css.root, children: [_jsxs(Button, { onClick: goBack, children: [_jsx(ArrowLeftIcon, {}), message(lang, "go-back")] }), _jsx("div", { id: "msem-magic-box" })] }));
100
+ if (modal) {
101
+ return null;
102
+ }
103
+ return (_jsxs("div", { className: css.root, children: [_jsxs(Button, { onClick: goBack, children: [_jsx(ArrowLeftIcon, {}), message(lang, "go-back")] }), "&& ", _jsx("div", { id: "msem-magic-box" })] }));
95
104
  };
96
105
  export default Booking;
@@ -26,8 +26,9 @@ type Props = {
26
26
  destination: string;
27
27
  forwardFieldValues: boolean;
28
28
  };
29
+ modal?: boolean;
29
30
  };
30
31
  declare const _default: React.MemoExoticComponent<typeof MagicBox>;
31
32
  export default _default;
32
- declare function MagicBox({ stay, cartUrl, channel, className, alignContent, maxCPDuration, minDays, maxDays, allowedActivities, categories, msemWidgetHost, msemApiHost, msemAdminHost, customSubmit, children, }: Props): import("react/jsx-runtime").JSX.Element;
33
+ declare function MagicBox({ stay, cartUrl, channel, className, alignContent, maxCPDuration, minDays, maxDays, allowedActivities, categories, msemWidgetHost, msemApiHost, msemAdminHost, customSubmit, modal, children, }: Props): import("react/jsx-runtime").JSX.Element;
33
34
  //# sourceMappingURL=magic-box.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"magic-box.d.ts","sourceRoot":"","sources":["../../../../src/esf/components/magic-box/magic-box.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,KAAK,cAAc,GACf,0BAA0B,GAC1B,sCAAsC,GACtC,8BAA8B,CAAC;AACnC,KAAK,WAAW,GACZ,oCAAoC,GACpC,gDAAgD,GAChD,wCAAwC,CAAC;AAC7C,KAAK,aAAa,GACd,oDAAoD,GACpD,gEAAgE,GAChE,wDAAwD,CAAC;AAE7D,KAAK,KAAK,GAAG;IACX,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH,CAAC;;AAIF,wBAAoC;AAEpC,iBAAS,QAAQ,CAAC,EAChB,IAAI,EACJ,OAAO,EACP,OAAe,EACf,SAAS,EACT,YAAY,EACZ,aAAa,EACb,OAAW,EACX,OAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,cAA2C,EAC3C,WAAkD,EAClD,aAAoE,EACpE,YAAY,EACZ,QAAQ,GACT,EAAE,KAAK,2CA8OP"}
1
+ {"version":3,"file":"magic-box.d.ts","sourceRoot":"","sources":["../../../../src/esf/components/magic-box/magic-box.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,KAAK,cAAc,GACf,0BAA0B,GAC1B,sCAAsC,GACtC,8BAA8B,CAAC;AACnC,KAAK,WAAW,GACZ,oCAAoC,GACpC,gDAAgD,GAChD,wCAAwC,CAAC;AAC7C,KAAK,aAAa,GACd,oDAAoD,GACpD,gEAAgE,GAChE,wDAAwD,CAAC;AAE7D,KAAK,KAAK,GAAG;IACX,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;;AAIF,wBAAoC;AAEpC,iBAAS,QAAQ,CAAC,EAChB,IAAI,EACJ,OAAO,EACP,OAAe,EACf,SAAS,EACT,YAAY,EACZ,aAAa,EACb,OAAW,EACX,OAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,cAA2C,EAC3C,WAAkD,EAClD,aAAoE,EACpE,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,EAAE,KAAK,2CAgPP"}
@@ -15,7 +15,7 @@ import { message } from "./messages";
15
15
  import * as API from "./services/api";
16
16
  import css from "./magic-box.module.css";
17
17
  export default React.memo(MagicBox);
18
- function MagicBox({ stay, cartUrl, channel = "ESF", className, alignContent, maxCPDuration, minDays = 0, maxDays = Infinity, allowedActivities, categories, msemWidgetHost = "https://widget.msem.tech", msemApiHost = "https://services.msem.tech/api/esf", msemAdminHost = "https://admin.mon-sejour-en-montagne.com/api/gesco", customSubmit, children, }) {
18
+ function MagicBox({ stay, cartUrl, channel = "ESF", className, alignContent, maxCPDuration, minDays = 0, maxDays = Infinity, allowedActivities, categories, msemWidgetHost = "https://widget.msem.tech", msemApiHost = "https://services.msem.tech/api/esf", msemAdminHost = "https://admin.mon-sejour-en-montagne.com/api/gesco", customSubmit, modal, children, }) {
19
19
  const [filters, setFilters] = React.useState();
20
20
  const [values, setValues] = React.useState();
21
21
  const [currentStep, setCurrentStep] = React.useState(0);
@@ -152,7 +152,7 @@ function MagicBox({ stay, cartUrl, channel = "ESF", className, alignContent, max
152
152
  const showFilter = stay && filters && values;
153
153
  const SubmitIcon = customSubmitChecked ? ArrowRightIcon : SearchIcon;
154
154
  const classes = classNames(css.root, className);
155
- return (_jsxs("div", { className: classes, "data-align": alignContent, children: [_jsxs("div", { className: css.top, children: [children, VELClosed && !jmoins && (_jsxs(Information, { type: "error", className: css.errorMessage, children: [message(lang, "vel-closed"), _jsx(Button, { className: css.contact, onClick: openContactDialog, children: message(lang, "contact-us") })] })), jmoins && (_jsxs(Information, { type: "warning", className: css.errorMessage, children: [message(lang, "booking-block-day-minus-start"), " ", jmoins, message(lang, "booking-block-day-minus-end")] })), !VELClosed && currentStep === 0 && (_jsxs(_Fragment, { children: [!filters && _jsx("div", { className: css.loader }), showFilter && (_jsx(Filters, { filters: filters, values: values, setValues: setValues, customSubmit: customSubmit, customSubmitChecked: customSubmitChecked, setCustomSubmitChecked: setCustomSubmitChecked })), _jsxs(Button, { className: css.confirm, onClick: submit, disabled: VELClosed || !isValid, children: [message(lang, customSubmitChecked ? "proceed" : "confirm"), _jsx(SubmitIcon, {})] })] })), currentStep === 1 && (_jsx(Booking, { stay: stay, cartUrl: cartUrl, channel: channel, values: values, maxCPDuration: maxCPDuration, setCurrentStep: setCurrentStep, msemWidgetHost: msemWidgetHost }))] }), _jsx(Dialog, { className: css.dialog, isOpened: contactDialogOpened, close: closeContactDialog, children: _jsx("div", { className: css.dialogInner, children: _jsx(GescoContactForm, { lang: lang, channel: channel, resort: resort, merchant: merchant }) }) })] }));
155
+ return (_jsxs("div", { className: classes, "data-align": alignContent, children: [_jsxs("div", { className: css.top, children: [children, VELClosed && !jmoins && (_jsxs(Information, { type: "error", className: css.errorMessage, children: [message(lang, "vel-closed"), _jsx(Button, { className: css.contact, onClick: openContactDialog, children: message(lang, "contact-us") })] })), jmoins && (_jsxs(Information, { type: "warning", className: css.errorMessage, children: [message(lang, "booking-block-day-minus-start"), " ", jmoins, message(lang, "booking-block-day-minus-end")] })), !VELClosed && (currentStep === 0 || modal) && (_jsxs(_Fragment, { children: [!filters && _jsx("div", { className: css.loader }), showFilter && (_jsx(Filters, { filters: filters, values: values, setValues: setValues, customSubmit: customSubmit, customSubmitChecked: customSubmitChecked, setCustomSubmitChecked: setCustomSubmitChecked })), _jsxs(Button, { className: css.confirm, onClick: submit, disabled: VELClosed || !isValid, children: [message(lang, customSubmitChecked ? "proceed" : "confirm"), _jsx(SubmitIcon, {})] })] })), currentStep === 1 && (_jsx(Booking, { stay: stay, cartUrl: cartUrl, channel: channel, values: values, maxCPDuration: maxCPDuration, currentStep: currentStep, setCurrentStep: setCurrentStep, msemWidgetHost: msemWidgetHost, modal: modal }))] }), _jsx(Dialog, { className: css.dialog, isOpened: contactDialogOpened, close: closeContactDialog, children: _jsx("div", { className: css.dialogInner, children: _jsx(GescoContactForm, { lang: lang, channel: channel, resort: resort, merchant: merchant }) }) })] }));
156
156
  }
157
157
  function getDefaultValues(filters) {
158
158
  return Object.keys(filters || {}).reduce((acc, key) => {
@@ -17,7 +17,7 @@ type Options = GlobalOptions & {
17
17
  skiSchoolUrl?: string;
18
18
  customOffers?: string;
19
19
  cartExpanded?: boolean;
20
- cartChanged?: (cart: any) => void;
20
+ cartChanged?: (cart?: any, kind?: string, eventType?: string) => void;
21
21
  show?: Show[];
22
22
  };
23
23
  type Presets = GlobalPresets & {};
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../../../src/future/components/msem/tunnel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE5D,KAAK,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvC,KAAK,OAAO,GAAG,aAAa,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;CACf,CAAC;AAEF,KAAK,OAAO,GAAG,aAAa,GAAG,EAAE,CAAC;AAElC,KAAK,KAAK,GAAG;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;;AAEF,wBAAkC;AAElC,iBAAS,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,mBAkBpD"}
1
+ {"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../../../src/future/components/msem/tunnel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE5D,KAAK,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvC,KAAK,OAAO,GAAG,aAAa,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;CACf,CAAC;AAEF,KAAK,OAAO,GAAG,aAAa,GAAG,EAAE,CAAC;AAElC,KAAK,KAAK,GAAG;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;;AAEF,wBAAkC;AAElC,iBAAS,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,mBAiCpD"}
@@ -5,9 +5,21 @@ export default React.memo(Tunnel);
5
5
  function Tunnel({ options, presets, children }) {
6
6
  React.useEffect(() => {
7
7
  const categoryCode = window.sessionStorage.getItem("categoryCode") || undefined;
8
+ const handleCartChange = (cart, kind, eventType) => {
9
+ options?.cartChanged?.(cart, kind, eventType);
10
+ const event = new CustomEvent("msem-cart-changed", {
11
+ detail: {
12
+ cart,
13
+ kind,
14
+ eventType,
15
+ },
16
+ });
17
+ window.dispatchEvent(event);
18
+ };
8
19
  const patchedOptions = {
9
20
  categoryCode,
10
21
  ...options,
22
+ cartChanged: handleCartChange,
11
23
  analytics: (...args) => {
12
24
  options?.analytics?.apply(null, args);
13
25
  Plausible.callback.apply(null, args);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ublo-lib",
3
- "version": "1.47.55",
3
+ "version": "1.47.57",
4
4
  "peerDependencies": {
5
5
  "classnames": "^2.5.1",
6
6
  "dt-design-system": "^3.12.0",