ublo-lib 1.24.4 → 1.25.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.
- package/es/common/components/admin-links/admin-links.js +95 -52
- package/es/common/components/admin-links/index.js +1 -1
- package/es/common/components/breadcrumb.js +78 -21
- package/es/common/components/cross-selling-editor/cross-selling-editor.js +52 -0
- package/es/common/components/cross-selling-editor/cross-selling-editor.module.css +6 -0
- package/es/common/components/cross-selling-editor/editor.js +98 -0
- package/es/common/components/cross-selling-editor/editor.module.css +23 -0
- package/es/common/components/cross-selling-editor/hooks/use-custom-offers.js +52 -0
- package/es/common/components/cross-selling-editor/hooks/use-tunnel-offers.js +35 -0
- package/es/common/components/cross-selling-editor/index.js +2 -0
- package/es/common/components/cross-selling-editor/override-trigger-form.js +156 -0
- package/es/common/components/cross-selling-editor/override-trigger-form.module.css +58 -0
- package/es/common/components/cross-selling-editor/override.js +124 -0
- package/es/common/components/cross-selling-editor/override.module.css +65 -0
- package/es/common/components/cross-selling-editor/overrides-list.js +111 -0
- package/es/common/components/cross-selling-editor/overrides-list.module.css +56 -0
- package/es/common/components/cross-selling-editor/rule.js +105 -0
- package/es/common/components/cross-selling-editor/rule.module.css +37 -0
- package/es/common/components/cross-selling-editor/rules.js +84 -0
- package/es/common/components/cross-selling-editor/rules.module.css +39 -0
- package/es/common/components/cross-selling-editor/services/api.js +36 -0
- package/es/common/components/cross-selling-editor/services/utils.js +199 -0
- package/es/common/components/cross-selling-editor/tester-tunnel-offer.js +53 -0
- package/es/common/components/cross-selling-editor/tester-tunnel-offer.module.css +18 -0
- package/es/common/components/cross-selling-editor/tester.js +188 -0
- package/es/common/components/cross-selling-editor/tester.module.css +106 -0
- package/es/common/components/cross-selling-editor/types.js +1 -0
- package/es/common/components/custom-contact-form/custom-contact-form.js +147 -75
- package/es/common/components/date-picker/calendar.js +1 -1
- package/es/common/components/gesco-contact-form/gesco-contact-form.js +240 -91
- package/es/common/components/gesco-contact-form/hooks/use-params.js +35 -20
- package/es/common/components/gesco-contact-form/index.js +1 -1
- package/es/common/components/gesco-contact-form/phone-code-select.js +76 -56
- package/es/common/components/gesco-contact-form/services/api.js +7 -8
- package/es/common/components/gesco-contact-form/services/form.js +39 -25
- package/es/common/components/gesco-contact-form/services/messages.js +68 -65
- package/es/common/components/gesco-contact-form/services/plausible.js +8 -10
- package/es/common/components/gesco-contact-form/types.js +1 -1
- package/es/common/components/instant-search/hooks/use-constant.js +8 -6
- package/es/common/components/instant-search/hooks/use-debounced-search.js +14 -5
- package/es/common/components/instant-search/hooks/use-search.js +10 -6
- package/es/common/components/instant-search/index.js +1 -1
- package/es/common/components/instant-search/input.js +75 -45
- package/es/common/components/instant-search/instant-search.js +124 -73
- package/es/common/components/instant-search/links.js +74 -23
- package/es/common/components/instant-search/no-product.js +81 -4
- package/es/common/components/instant-search/products.js +118 -31
- package/es/common/components/instant-search/results.js +121 -32
- package/es/common/components/instant-search/services/api.js +12 -10
- package/es/common/components/instant-search/services/messages.js +3 -3
- package/es/common/components/instant-search/services/utils.js +34 -34
- package/es/common/components/msem-preset-editor/components/facet-selector.js +39 -22
- package/es/common/components/msem-preset-editor/components/form.js +54 -5
- package/es/common/components/msem-preset-editor/components/stay-picker.js +72 -33
- package/es/common/components/msem-preset-editor/components/widget-list-item.js +130 -42
- package/es/common/components/msem-preset-editor/components/widget-list.js +54 -29
- package/es/common/components/msem-preset-editor/editor-dialog.js +68 -21
- package/es/common/components/msem-preset-editor/editors/elloha.js +102 -69
- package/es/common/components/msem-preset-editor/editors/index.js +6 -6
- package/es/common/components/msem-preset-editor/editors/lodgings.js +316 -184
- package/es/common/components/msem-preset-editor/editors/ski-passes.js +267 -180
- package/es/common/components/msem-preset-editor/editors/standard-products.js +84 -56
- package/es/common/components/msem-preset-editor/editors/vakario.js +239 -171
- package/es/common/components/msem-preset-editor/msem-preset-editor.js +215 -129
- package/es/common/components/msem-preset-editor/services/api.js +69 -42
- package/es/common/components/msem-preset-editor/services/offers.js +61 -35
- package/es/common/components/msem-preset-editor/services/preset.js +22 -14
- package/es/common/components/msem-preset-editor/services/url-params.js +24 -24
- package/es/common/components/msem-preset-linker/components/actions.js +52 -40
- package/es/common/components/msem-preset-linker/components/overlays.js +57 -41
- package/es/common/components/msem-preset-linker/components/resort-selector.js +21 -11
- package/es/common/components/msem-preset-linker/hooks/use-msem-presets.js +43 -31
- package/es/common/components/msem-preset-linker/index.js +1 -1
- package/es/common/components/msem-preset-linker/msem-preset-linker.js +71 -42
- package/es/common/components/msem-preset-linker/services/url-params.js +10 -13
- package/es/common/components/plausible/hooks/use-plausible.js +22 -18
- package/es/common/components/plausible/index.js +1 -1
- package/es/common/components/plausible/plausible.js +23 -14
- package/es/common/components/plausible/services/callback.js +164 -115
- package/es/common/components/plausible/services/load.js +4 -6
- package/es/common/components/plausible/services/send-goal.js +6 -3
- package/es/common/components/scroll-spy.js +56 -43
- package/es/common/components/scrolling-carousel/index.js +1 -1
- package/es/common/components/scrolling-carousel/scrolling-carousel.js +94 -55
- package/es/common/components/tabbed-zones.js +100 -47
- package/es/common/hooks/use-faq.js +37 -36
- package/es/common/hooks/use-in-view.js +74 -74
- package/es/common/hooks/use-scroll-direction.js +37 -32
- package/es/common/hooks/use-stay.js +16 -13
- package/es/common/hooks/use-sticky.js +35 -35
- package/es/common/hooks/use-tunnel.js +42 -30
- package/es/common/hooks/use-update-effect.js +9 -9
- package/es/common/hooks/use-window-sizes.js +27 -28
- package/es/common/utils/cms.js +15 -17
- package/es/common/utils/cookies.js +10 -11
- package/es/common/utils/copy.js +11 -11
- package/es/common/utils/dates.js +8 -10
- package/es/common/utils/elements.js +14 -15
- package/es/common/utils/events.js +4 -19
- package/es/common/utils/file-manager.js +12 -10
- package/es/common/utils/load-js.js +10 -11
- package/es/common/utils/msem-widget.js +30 -23
- package/es/common/utils/url-parameters.js +11 -7
- package/es/esf/components/magic-box/index.js +1 -1
- package/es/esf/components/magic-box/magic-box.js +164 -102
- package/es/esf/components/parcours-esf/index.js +1 -1
- package/es/esf/components/parcours-esf/parcours-esf.js +45 -30
- package/es/esf/components/period-picker/period-picker.js +5 -5
- package/es/lbm/components/lumiplan/api.js +35 -18
- package/es/lbm/components/lumiplan/domain.js +96 -20
- package/es/lbm/components/lumiplan/i18n/translations.js +24 -15
- package/es/lbm/components/lumiplan/index.js +1 -1
- package/es/lbm/components/lumiplan/lumiplan.js +130 -102
- package/es/lbm/components/lumiplan/opening.js +116 -38
- package/es/lbm/components/lumiplan/pois.js +270 -161
- package/es/lbm/components/lumiplan/resort-selector.js +58 -36
- package/es/lbm/components/lumiplan/road-condition.js +100 -19
- package/es/lbm/components/lumiplan/todays-tips.js +45 -16
- package/es/lbm/components/lumiplan/types.js +1 -1
- package/es/lbm/components/lumiplan/weather/avalanche-risk.js +33 -8
- package/es/lbm/components/lumiplan/weather/index.js +1 -1
- package/es/lbm/components/lumiplan/weather/snow-data.js +71 -5
- package/es/lbm/components/lumiplan/weather/weather-data.js +126 -7
- package/es/lbm/components/lumiplan/weather/weather-days.js +76 -48
- package/es/lbm/components/lumiplan/weather/weather-icon.js +23 -20
- package/es/lbm/components/lumiplan/weather/weather-zones.js +71 -42
- package/es/lbm/components/lumiplan/weather/weather.js +90 -28
- package/package.json +4 -10
- package/es/common/components/admin-links/admin-links.d.ts +0 -11
- package/es/common/components/admin-links/admin-links.d.ts.map +0 -1
- package/es/common/components/admin-links/index.d.ts +0 -3
- package/es/common/components/admin-links/index.d.ts.map +0 -1
- package/es/common/components/breadcrumb.d.ts +0 -16
- package/es/common/components/breadcrumb.d.ts.map +0 -1
- package/es/common/components/custom-contact-form/custom-contact-form.d.ts +0 -25
- package/es/common/components/custom-contact-form/custom-contact-form.d.ts.map +0 -1
- package/es/common/components/gesco-contact-form/gesco-contact-form.d.ts +0 -17
- package/es/common/components/gesco-contact-form/gesco-contact-form.d.ts.map +0 -1
- package/es/common/components/gesco-contact-form/hooks/use-params.d.ts +0 -15
- package/es/common/components/gesco-contact-form/hooks/use-params.d.ts.map +0 -1
- package/es/common/components/gesco-contact-form/index.d.ts +0 -3
- package/es/common/components/gesco-contact-form/index.d.ts.map +0 -1
- package/es/common/components/gesco-contact-form/phone-code-select.d.ts +0 -7
- package/es/common/components/gesco-contact-form/phone-code-select.d.ts.map +0 -1
- package/es/common/components/gesco-contact-form/services/api.d.ts +0 -30
- package/es/common/components/gesco-contact-form/services/api.d.ts.map +0 -1
- package/es/common/components/gesco-contact-form/services/form.d.ts +0 -31
- package/es/common/components/gesco-contact-form/services/form.d.ts.map +0 -1
- package/es/common/components/gesco-contact-form/services/messages.d.ts +0 -34
- package/es/common/components/gesco-contact-form/services/messages.d.ts.map +0 -1
- package/es/common/components/gesco-contact-form/services/plausible.d.ts +0 -3
- package/es/common/components/gesco-contact-form/services/plausible.d.ts.map +0 -1
- package/es/common/components/gesco-contact-form/types.d.ts +0 -34
- package/es/common/components/gesco-contact-form/types.d.ts.map +0 -1
- package/es/common/components/instant-search/hooks/use-constant.d.ts +0 -2
- package/es/common/components/instant-search/hooks/use-constant.d.ts.map +0 -1
- package/es/common/components/instant-search/hooks/use-debounced-search.d.ts +0 -7
- package/es/common/components/instant-search/hooks/use-debounced-search.d.ts.map +0 -1
- package/es/common/components/instant-search/hooks/use-search.d.ts +0 -16
- package/es/common/components/instant-search/hooks/use-search.d.ts.map +0 -1
- package/es/common/components/instant-search/index.d.ts +0 -3
- package/es/common/components/instant-search/index.d.ts.map +0 -1
- package/es/common/components/instant-search/input.d.ts +0 -15
- package/es/common/components/instant-search/input.d.ts.map +0 -1
- package/es/common/components/instant-search/instant-search.d.ts +0 -14
- package/es/common/components/instant-search/instant-search.d.ts.map +0 -1
- package/es/common/components/instant-search/links.d.ts +0 -12
- package/es/common/components/instant-search/links.d.ts.map +0 -1
- package/es/common/components/instant-search/no-product.d.ts +0 -6
- package/es/common/components/instant-search/no-product.d.ts.map +0 -1
- package/es/common/components/instant-search/products.d.ts +0 -14
- package/es/common/components/instant-search/products.d.ts.map +0 -1
- package/es/common/components/instant-search/results.d.ts +0 -76
- package/es/common/components/instant-search/results.d.ts.map +0 -1
- package/es/common/components/instant-search/services/api.d.ts +0 -2
- package/es/common/components/instant-search/services/api.d.ts.map +0 -1
- package/es/common/components/instant-search/services/messages.d.ts +0 -2
- package/es/common/components/instant-search/services/messages.d.ts.map +0 -1
- package/es/common/components/instant-search/services/utils.d.ts +0 -4
- package/es/common/components/instant-search/services/utils.d.ts.map +0 -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/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/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/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.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/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/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/index.d.ts +0 -14
- package/es/common/components/msem-preset-editor/editors/index.d.ts.map +0 -1
- 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/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/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/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/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/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/offers.d.ts +0 -47
- package/es/common/components/msem-preset-editor/services/offers.d.ts.map +0 -1
- package/es/common/components/msem-preset-editor/services/preset.d.ts +0 -40
- package/es/common/components/msem-preset-editor/services/preset.d.ts.map +0 -1
- 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-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/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/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/hooks/use-msem-presets.d.ts +0 -4
- package/es/common/components/msem-preset-linker/hooks/use-msem-presets.d.ts.map +0 -1
- 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/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/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/plausible/hooks/use-plausible.d.ts +0 -12
- package/es/common/components/plausible/hooks/use-plausible.d.ts.map +0 -1
- package/es/common/components/plausible/index.d.ts +0 -8
- package/es/common/components/plausible/index.d.ts.map +0 -1
- package/es/common/components/plausible/plausible.d.ts +0 -7
- package/es/common/components/plausible/plausible.d.ts.map +0 -1
- package/es/common/components/plausible/services/callback.d.ts +0 -24
- package/es/common/components/plausible/services/callback.d.ts.map +0 -1
- package/es/common/components/plausible/services/load.d.ts +0 -2
- package/es/common/components/plausible/services/load.d.ts.map +0 -1
- package/es/common/components/plausible/services/send-goal.d.ts +0 -7
- package/es/common/components/plausible/services/send-goal.d.ts.map +0 -1
- package/es/common/components/scroll-spy.d.ts +0 -14
- package/es/common/components/scroll-spy.d.ts.map +0 -1
- package/es/common/components/scrolling-carousel/index.d.ts +0 -3
- package/es/common/components/scrolling-carousel/index.d.ts.map +0 -1
- package/es/common/components/scrolling-carousel/scrolling-carousel.d.ts +0 -8
- package/es/common/components/scrolling-carousel/scrolling-carousel.d.ts.map +0 -1
- package/es/common/components/tabbed-zones.d.ts +0 -12
- package/es/common/components/tabbed-zones.d.ts.map +0 -1
- package/es/common/hooks/use-faq.d.ts +0 -3
- package/es/common/hooks/use-faq.d.ts.map +0 -1
- package/es/common/hooks/use-in-view.d.ts +0 -5
- package/es/common/hooks/use-in-view.d.ts.map +0 -1
- package/es/common/hooks/use-scroll-direction.d.ts +0 -11
- package/es/common/hooks/use-scroll-direction.d.ts.map +0 -1
- package/es/common/hooks/use-stay.d.ts +0 -4
- package/es/common/hooks/use-stay.d.ts.map +0 -1
- package/es/common/hooks/use-sticky.d.ts +0 -4
- package/es/common/hooks/use-sticky.d.ts.map +0 -1
- package/es/common/hooks/use-tunnel.d.ts +0 -8
- package/es/common/hooks/use-tunnel.d.ts.map +0 -1
- package/es/common/hooks/use-update-effect.d.ts +0 -2
- package/es/common/hooks/use-update-effect.d.ts.map +0 -1
- package/es/common/hooks/use-window-sizes.d.ts +0 -7
- package/es/common/hooks/use-window-sizes.d.ts.map +0 -1
- package/es/common/utils/cms.d.ts +0 -4
- package/es/common/utils/cms.d.ts.map +0 -1
- package/es/common/utils/cookies.d.ts +0 -2
- package/es/common/utils/cookies.d.ts.map +0 -1
- package/es/common/utils/copy.d.ts +0 -2
- package/es/common/utils/copy.d.ts.map +0 -1
- package/es/common/utils/dates.d.ts +0 -2
- package/es/common/utils/dates.d.ts.map +0 -1
- package/es/common/utils/elements.d.ts +0 -5
- package/es/common/utils/elements.d.ts.map +0 -1
- package/es/common/utils/events.d.ts +0 -4
- package/es/common/utils/events.d.ts.map +0 -1
- package/es/common/utils/file-manager.d.ts +0 -13
- package/es/common/utils/file-manager.d.ts.map +0 -1
- package/es/common/utils/load-js.d.ts +0 -3
- package/es/common/utils/load-js.d.ts.map +0 -1
- package/es/common/utils/msem-widget.d.ts +0 -16
- package/es/common/utils/msem-widget.d.ts.map +0 -1
- package/es/common/utils/url-parameters.d.ts +0 -2
- package/es/common/utils/url-parameters.d.ts.map +0 -1
- package/es/esf/components/magic-box/index.d.ts +0 -3
- package/es/esf/components/magic-box/index.d.ts.map +0 -1
- package/es/esf/components/magic-box/magic-box.d.ts +0 -22
- package/es/esf/components/magic-box/magic-box.d.ts.map +0 -1
- package/es/esf/components/parcours-esf/index.d.ts +0 -3
- package/es/esf/components/parcours-esf/index.d.ts.map +0 -1
- package/es/esf/components/parcours-esf/parcours-esf.d.ts +0 -14
- package/es/esf/components/parcours-esf/parcours-esf.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/api.d.ts +0 -8
- package/es/lbm/components/lumiplan/api.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/domain.d.ts +0 -8
- package/es/lbm/components/lumiplan/domain.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/i18n/translations.d.ts +0 -7
- package/es/lbm/components/lumiplan/i18n/translations.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/index.d.ts +0 -3
- package/es/lbm/components/lumiplan/index.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/lumiplan.d.ts +0 -2
- package/es/lbm/components/lumiplan/lumiplan.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/opening.d.ts +0 -9
- package/es/lbm/components/lumiplan/opening.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/pois.d.ts +0 -8
- package/es/lbm/components/lumiplan/pois.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/resort-selector.d.ts +0 -12
- package/es/lbm/components/lumiplan/resort-selector.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/road-condition.d.ts +0 -8
- package/es/lbm/components/lumiplan/road-condition.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/todays-tips.d.ts +0 -8
- package/es/lbm/components/lumiplan/todays-tips.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/types.d.ts +0 -285
- package/es/lbm/components/lumiplan/types.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/weather/avalanche-risk.d.ts +0 -4
- package/es/lbm/components/lumiplan/weather/avalanche-risk.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/weather/index.d.ts +0 -3
- package/es/lbm/components/lumiplan/weather/index.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/weather/snow-data.d.ts +0 -8
- package/es/lbm/components/lumiplan/weather/snow-data.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/weather/weather-data.d.ts +0 -9
- package/es/lbm/components/lumiplan/weather/weather-data.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/weather/weather-days.d.ts +0 -7
- package/es/lbm/components/lumiplan/weather/weather-days.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/weather/weather-icon.d.ts +0 -23
- package/es/lbm/components/lumiplan/weather/weather-icon.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/weather/weather-zones.d.ts +0 -6
- package/es/lbm/components/lumiplan/weather/weather-zones.d.ts.map +0 -1
- package/es/lbm/components/lumiplan/weather/weather.d.ts +0 -8
- package/es/lbm/components/lumiplan/weather/weather.d.ts.map +0 -1
|
@@ -1,130 +1,179 @@
|
|
|
1
1
|
import sendGoal from "./send-goal";
|
|
2
|
-
// TODO lors de la mise en prod de la nouvelle version PeekPerformances
|
|
3
|
-
// rename events "MseM:" > "PeekPerformances:"
|
|
4
|
-
// Retirer les anciennes props :
|
|
5
|
-
// Name, Brand, Kind, Activity, Code, Product, cartId,
|
|
6
|
-
// orderId, Code, Payment type
|
|
7
2
|
const EVENT_NAMES = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
3
|
+
view_item: "MseM: View item",
|
|
4
|
+
add_to_cart: "MseM: Add to cart",
|
|
5
|
+
checkout: "MseM: Begin checkout",
|
|
6
|
+
add_payment_info: "MseM: Checkout process",
|
|
7
|
+
purchase: "MseM: Payment success",
|
|
8
|
+
payment_failure: "MseM: Payment failure"
|
|
14
9
|
};
|
|
15
|
-
export function MseM({
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
10
|
+
export function MseM({
|
|
11
|
+
event,
|
|
12
|
+
payment_type: paymentType,
|
|
13
|
+
execcode,
|
|
14
|
+
items = [],
|
|
15
|
+
orderId,
|
|
16
|
+
cartId,
|
|
17
|
+
currency = "EUR"
|
|
18
|
+
}) {
|
|
19
|
+
const hoteId = getBusinessProvider();
|
|
20
|
+
const stay = getStay();
|
|
21
|
+
const amount = items.reduce((acc, item) => {
|
|
22
|
+
return acc + item.gtmData.price * item.gtmData.quantity;
|
|
23
|
+
}, 0);
|
|
24
|
+
const revenue = {
|
|
25
|
+
currency,
|
|
26
|
+
amount
|
|
27
|
+
};
|
|
28
|
+
let name = EVENT_NAMES[event];
|
|
29
|
+
const firstProductProps = {
|
|
30
|
+
Name: items[0]?.gtmData.item_name,
|
|
31
|
+
Brand: items[0]?.gtmData.item_brand,
|
|
32
|
+
Kind: items[0]?.gtmData.item_category,
|
|
33
|
+
Activity: items[0]?.gtmData.item_category2,
|
|
34
|
+
Code: items[0]?.gtmData.item_category3,
|
|
35
|
+
Product: items[0]?.gtmData.item_variant
|
|
36
|
+
};
|
|
37
|
+
switch (event) {
|
|
38
|
+
case "view_item":
|
|
39
|
+
{
|
|
40
|
+
const formatedItems = formatPeekPerformancesItem(items);
|
|
41
|
+
const rawData = JSON.stringify({
|
|
42
|
+
products: formatedItems,
|
|
43
|
+
hoteId,
|
|
44
|
+
stay
|
|
45
|
+
});
|
|
46
|
+
sendGoal(name, {
|
|
47
|
+
...firstProductProps,
|
|
48
|
+
rawData
|
|
49
|
+
});
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
case "add_to_cart":
|
|
53
|
+
{
|
|
54
|
+
const formatedItems = formatPeekPerformancesItem(items);
|
|
55
|
+
const rawData = JSON.stringify({
|
|
56
|
+
products: formatedItems,
|
|
57
|
+
hoteId,
|
|
58
|
+
stay
|
|
59
|
+
});
|
|
60
|
+
sendGoal(name, {
|
|
61
|
+
...firstProductProps,
|
|
62
|
+
rawData
|
|
63
|
+
}, revenue);
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
case "checkout":
|
|
67
|
+
{
|
|
68
|
+
const formatedItems = formatPeekPerformancesItem(items);
|
|
69
|
+
const rawData = JSON.stringify({
|
|
70
|
+
products: formatedItems,
|
|
71
|
+
hoteId,
|
|
72
|
+
stay
|
|
73
|
+
});
|
|
74
|
+
sendGoal(name, {
|
|
75
|
+
cartId,
|
|
76
|
+
rawData
|
|
77
|
+
}, revenue);
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case "add_payment_info":
|
|
81
|
+
{
|
|
82
|
+
const formatedItems = formatPeekPerformancesItem(items);
|
|
83
|
+
const rawData = JSON.stringify({
|
|
84
|
+
products: formatedItems,
|
|
85
|
+
hoteId,
|
|
86
|
+
stay,
|
|
87
|
+
paymentMethod: paymentType
|
|
88
|
+
});
|
|
89
|
+
sendGoal(name, {
|
|
90
|
+
cartId,
|
|
91
|
+
"Payment type": paymentType,
|
|
92
|
+
rawData
|
|
93
|
+
}, revenue);
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
case "purchase":
|
|
97
|
+
{
|
|
98
|
+
const isFailure = execcode !== "0000";
|
|
99
|
+
const formatedItems = formatPeekPerformancesItem(items);
|
|
100
|
+
const attempts = cartId && getPurchaseAttempts()[cartId] || 0;
|
|
101
|
+
const rawData = JSON.stringify({
|
|
102
|
+
products: formatedItems,
|
|
103
|
+
hoteId,
|
|
104
|
+
stay,
|
|
105
|
+
attempts,
|
|
106
|
+
paymentMethod: paymentType,
|
|
107
|
+
execCode: execcode
|
|
108
|
+
});
|
|
109
|
+
if (isFailure) {
|
|
110
|
+
name = EVENT_NAMES.payment_failure;
|
|
111
|
+
sendGoal(name, {
|
|
112
|
+
cartId,
|
|
113
|
+
orderId,
|
|
114
|
+
Code: execcode,
|
|
115
|
+
rawData
|
|
116
|
+
}, revenue);
|
|
117
|
+
if (cartId) {
|
|
118
|
+
setPurchaseAttempts(cartId, attempts + 1);
|
|
119
|
+
}
|
|
120
|
+
} else {
|
|
121
|
+
sendGoal(name, {
|
|
122
|
+
cartId,
|
|
123
|
+
orderId,
|
|
124
|
+
Code: execcode,
|
|
125
|
+
rawData
|
|
126
|
+
}, revenue);
|
|
84
127
|
}
|
|
85
|
-
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
86
131
|
}
|
|
87
132
|
const PURCHASE_ATTEMPTS_STORAGE_KEY = "purchase_attempts";
|
|
88
133
|
function getPurchaseAttempts() {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
134
|
+
try {
|
|
135
|
+
const storedAttempts = window.localStorage.getItem(PURCHASE_ATTEMPTS_STORAGE_KEY);
|
|
136
|
+
return storedAttempts !== null ? JSON.parse(storedAttempts) : {};
|
|
137
|
+
} catch (e) {
|
|
138
|
+
return {};
|
|
139
|
+
}
|
|
96
140
|
}
|
|
97
141
|
function setPurchaseAttempts(cartId, attempts) {
|
|
98
|
-
|
|
99
|
-
|
|
142
|
+
const purchaseAttempts = getPurchaseAttempts();
|
|
143
|
+
window.localStorage.setItem(PURCHASE_ATTEMPTS_STORAGE_KEY, JSON.stringify({
|
|
144
|
+
...purchaseAttempts,
|
|
145
|
+
[cartId]: attempts
|
|
146
|
+
}));
|
|
100
147
|
}
|
|
101
148
|
function formatPeekPerformancesItem(items) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
149
|
+
if (!items || !items.length) return;
|
|
150
|
+
return items.map(({
|
|
151
|
+
gtmData
|
|
152
|
+
}) => {
|
|
153
|
+
return {
|
|
154
|
+
category: gtmData.item_category,
|
|
155
|
+
subCategory: gtmData.item_category2,
|
|
156
|
+
merchant: gtmData.item_brand,
|
|
157
|
+
price: gtmData.price
|
|
158
|
+
};
|
|
159
|
+
});
|
|
112
160
|
}
|
|
113
161
|
function getStay() {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
162
|
+
const stay = window.localStorage.getItem("stay");
|
|
163
|
+
if (stay) {
|
|
164
|
+
return stay;
|
|
165
|
+
}
|
|
118
166
|
}
|
|
119
167
|
function getBusinessProvider() {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
}
|
|
130
|
-
}
|
|
168
|
+
const businessProvider = window.localStorage.getItem("businessProvider");
|
|
169
|
+
if (businessProvider) {
|
|
170
|
+
try {
|
|
171
|
+
const {
|
|
172
|
+
id
|
|
173
|
+
} = JSON.parse(businessProvider);
|
|
174
|
+
if (id !== -1) {
|
|
175
|
+
return id;
|
|
176
|
+
}
|
|
177
|
+
} catch (e) {}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
export default function load() {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
}
|
|
2
|
+
window.plausible = window.plausible || function () {
|
|
3
|
+
(window.plausible.q = window.plausible.q || []).push(arguments);
|
|
4
|
+
};
|
|
5
|
+
}
|
|
@@ -1,46 +1,59 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
1
|
import * as React from "react";
|
|
3
2
|
import classNames from "classnames";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
export default function ScrollSpy({
|
|
5
|
+
className,
|
|
6
|
+
items,
|
|
7
|
+
Tag = "div",
|
|
8
|
+
currentClassName,
|
|
9
|
+
onUpdate,
|
|
10
|
+
rootMargin = "-50% 0px",
|
|
11
|
+
container,
|
|
12
|
+
children
|
|
13
|
+
}) {
|
|
14
|
+
const [current, setCurrent] = React.useState();
|
|
15
|
+
const callback = React.useCallback(entries => {
|
|
16
|
+
for (const entry of entries) {
|
|
17
|
+
if (container === entry.target) {
|
|
18
|
+
if (!entry.isIntersecting) {
|
|
19
|
+
setCurrent(undefined);
|
|
20
|
+
onUpdate?.(undefined);
|
|
19
21
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
22
|
+
} else if (entry.isIntersecting) {
|
|
23
|
+
const index = items.indexOf(entry.target.id);
|
|
24
|
+
setCurrent(index);
|
|
25
|
+
onUpdate?.(entry.target);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}, [container, items, onUpdate]);
|
|
29
|
+
React.useEffect(() => {
|
|
30
|
+
const defaultTargets = container ? [container] : [];
|
|
31
|
+
const targets = items.length ? items.reduce((acc, item) => {
|
|
32
|
+
const element = document.getElementById(item);
|
|
33
|
+
return element ? [...acc, element] : acc;
|
|
34
|
+
}, defaultTargets) : defaultTargets;
|
|
35
|
+
const observer = new window.IntersectionObserver(callback, {
|
|
36
|
+
rootMargin
|
|
37
|
+
});
|
|
38
|
+
targets.forEach(observer.observe, observer);
|
|
39
|
+
return () => {
|
|
40
|
+
observer.disconnect();
|
|
41
|
+
};
|
|
42
|
+
}, [callback, container, items, rootMargin]);
|
|
43
|
+
return _jsx(Tag, {
|
|
44
|
+
className: className,
|
|
45
|
+
children: children && children.map(({
|
|
46
|
+
props,
|
|
47
|
+
...child
|
|
48
|
+
}, i) => {
|
|
49
|
+
const className = classNames({
|
|
50
|
+
[props.className]: props.className,
|
|
51
|
+
[currentClassName]: current === i
|
|
52
|
+
});
|
|
53
|
+
return React.cloneElement(child, {
|
|
54
|
+
...props,
|
|
55
|
+
className
|
|
56
|
+
});
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import ScrollingCarousel from "./scrolling-carousel";
|
|
2
|
-
export default ScrollingCarousel;
|
|
2
|
+
export default ScrollingCarousel;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
1
|
import * as React from "react";
|
|
3
2
|
import classNames from "classnames";
|
|
4
3
|
import { useUbloContext } from "ublo/with-ublo";
|
|
@@ -6,61 +5,101 @@ import Button from "dt-design-system/es/button";
|
|
|
6
5
|
import * as Icons from "dt-design-system/es/icons";
|
|
7
6
|
import useWindowSizes from "../../hooks/use-window-sizes";
|
|
8
7
|
import css from "./scrolling-carousel.module.css";
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
10
|
const PREV = 0;
|
|
10
11
|
const NEXT = 1;
|
|
11
|
-
export default function ScrollingCarousel({
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
12
|
+
export default function ScrollingCarousel({
|
|
13
|
+
className,
|
|
14
|
+
children
|
|
15
|
+
}) {
|
|
16
|
+
const {
|
|
17
|
+
cmsMode
|
|
18
|
+
} = useUbloContext();
|
|
19
|
+
const ref = React.useRef(null);
|
|
20
|
+
const zoneRef = React.useRef(null);
|
|
21
|
+
const [overflow, setOverflow] = React.useState(false);
|
|
22
|
+
const [controls, setControls] = React.useState({
|
|
23
|
+
prevDisabled: false,
|
|
24
|
+
nextDisabled: false
|
|
25
|
+
});
|
|
26
|
+
const {
|
|
27
|
+
width
|
|
28
|
+
} = useWindowSizes();
|
|
29
|
+
const slideTo = direction => () => {
|
|
30
|
+
const zone = zoneRef.current;
|
|
31
|
+
const inner = ref.current;
|
|
32
|
+
if (zone && inner) {
|
|
33
|
+
const zoneContainer = zone;
|
|
34
|
+
const innerContainer = inner;
|
|
35
|
+
const firstSection = zoneContainer.querySelector("section:not([data-hidden], [hidden])");
|
|
36
|
+
if (firstSection) {
|
|
37
|
+
const scrollDistance = firstSection.clientWidth;
|
|
38
|
+
if (direction === PREV) {
|
|
39
|
+
innerContainer.scrollLeft -= scrollDistance;
|
|
37
40
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const zone = zoneRef.current;
|
|
41
|
-
const inner = ref.current;
|
|
42
|
-
if (zone && inner) {
|
|
43
|
-
const zoneContainer = zone;
|
|
44
|
-
const innerContainer = inner;
|
|
45
|
-
setOverflow(innerContainer.clientWidth < zoneContainer.clientWidth);
|
|
46
|
-
setControls({
|
|
47
|
-
prevDisabled: innerContainer.scrollLeft === 0,
|
|
48
|
-
nextDisabled: innerContainer.scrollLeft ===
|
|
49
|
-
Math.round(innerContainer.scrollWidth) -
|
|
50
|
-
Math.round(innerContainer.clientWidth),
|
|
51
|
-
});
|
|
41
|
+
if (direction === NEXT) {
|
|
42
|
+
innerContainer.scrollLeft += scrollDistance;
|
|
52
43
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const refreshControls = React.useCallback(() => {
|
|
48
|
+
const zone = zoneRef.current;
|
|
49
|
+
const inner = ref.current;
|
|
50
|
+
if (zone && inner) {
|
|
51
|
+
const zoneContainer = zone;
|
|
52
|
+
const innerContainer = inner;
|
|
53
|
+
setOverflow(innerContainer.clientWidth < zoneContainer.clientWidth);
|
|
54
|
+
setControls({
|
|
55
|
+
prevDisabled: innerContainer.scrollLeft === 0,
|
|
56
|
+
nextDisabled: innerContainer.scrollLeft === Math.round(innerContainer.scrollWidth) - Math.round(innerContainer.clientWidth)
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}, []);
|
|
60
|
+
React.useEffect(() => {
|
|
61
|
+
refreshControls();
|
|
62
|
+
}, [cmsMode, refreshControls]);
|
|
63
|
+
React.useEffect(() => {
|
|
64
|
+
const inner = ref.current;
|
|
65
|
+
if (inner) {
|
|
66
|
+
const innerContainer = inner;
|
|
67
|
+
innerContainer.scrollLeft = 0;
|
|
68
|
+
}
|
|
69
|
+
}, [width]);
|
|
70
|
+
const classes = classNames(css.carousel, className);
|
|
71
|
+
return _jsxs("div", {
|
|
72
|
+
className: classes,
|
|
73
|
+
children: [overflow && _jsxs("div", {
|
|
74
|
+
className: css.controls,
|
|
75
|
+
"data-controls": "",
|
|
76
|
+
children: [_jsx(Button, {
|
|
77
|
+
className: css.control,
|
|
78
|
+
variant: "link",
|
|
79
|
+
onClick: slideTo(PREV),
|
|
80
|
+
disabled: controls.prevDisabled,
|
|
81
|
+
"data-control": "prev",
|
|
82
|
+
children: _jsx(Icons.ChevronLeft, {
|
|
83
|
+
className: css.controlIcon
|
|
84
|
+
})
|
|
85
|
+
}), _jsx(Button, {
|
|
86
|
+
className: css.control,
|
|
87
|
+
variant: "link",
|
|
88
|
+
onClick: slideTo(NEXT),
|
|
89
|
+
disabled: controls.nextDisabled,
|
|
90
|
+
"data-control": "next",
|
|
91
|
+
children: _jsx(Icons.ChevronRight, {
|
|
92
|
+
className: css.controlIcon
|
|
93
|
+
})
|
|
94
|
+
})]
|
|
95
|
+
}), _jsx("div", {
|
|
96
|
+
className: css.inner,
|
|
97
|
+
ref: ref,
|
|
98
|
+
onScroll: refreshControls,
|
|
99
|
+
"data-inner": "",
|
|
100
|
+
children: React.cloneElement(children, {
|
|
101
|
+
ref: zoneRef
|
|
102
|
+
})
|
|
103
|
+
})]
|
|
104
|
+
});
|
|
105
|
+
}
|