ublo-lib 1.24.4 → 1.25.0

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 (330) hide show
  1. package/es/common/components/admin-links/admin-links.js +95 -52
  2. package/es/common/components/admin-links/index.js +1 -1
  3. package/es/common/components/breadcrumb.js +78 -21
  4. package/es/common/components/cross-selling-editor/cross-selling-editor.js +52 -0
  5. package/es/common/components/cross-selling-editor/cross-selling-editor.module.css +6 -0
  6. package/es/common/components/cross-selling-editor/editor.js +98 -0
  7. package/es/common/components/cross-selling-editor/editor.module.css +23 -0
  8. package/es/common/components/cross-selling-editor/hooks/use-custom-offers.js +52 -0
  9. package/es/common/components/cross-selling-editor/hooks/use-tunnel-offers.js +35 -0
  10. package/es/common/components/cross-selling-editor/index.js +2 -0
  11. package/es/common/components/cross-selling-editor/override-trigger-form.js +156 -0
  12. package/es/common/components/cross-selling-editor/override-trigger-form.module.css +58 -0
  13. package/es/common/components/cross-selling-editor/override.js +124 -0
  14. package/es/common/components/cross-selling-editor/override.module.css +65 -0
  15. package/es/common/components/cross-selling-editor/overrides-list.js +111 -0
  16. package/es/common/components/cross-selling-editor/overrides-list.module.css +56 -0
  17. package/es/common/components/cross-selling-editor/rule.js +105 -0
  18. package/es/common/components/cross-selling-editor/rule.module.css +37 -0
  19. package/es/common/components/cross-selling-editor/rules.js +84 -0
  20. package/es/common/components/cross-selling-editor/rules.module.css +39 -0
  21. package/es/common/components/cross-selling-editor/services/api.js +36 -0
  22. package/es/common/components/cross-selling-editor/services/utils.js +199 -0
  23. package/es/common/components/cross-selling-editor/tester-tunnel-offer.js +53 -0
  24. package/es/common/components/cross-selling-editor/tester-tunnel-offer.module.css +18 -0
  25. package/es/common/components/cross-selling-editor/tester.js +188 -0
  26. package/es/common/components/cross-selling-editor/tester.module.css +106 -0
  27. package/es/common/components/cross-selling-editor/types.js +1 -0
  28. package/es/common/components/custom-contact-form/custom-contact-form.js +147 -75
  29. package/es/common/components/date-picker/calendar.js +1 -1
  30. package/es/common/components/gesco-contact-form/gesco-contact-form.js +243 -91
  31. package/es/common/components/gesco-contact-form/hooks/use-params.js +35 -20
  32. package/es/common/components/gesco-contact-form/index.js +1 -1
  33. package/es/common/components/gesco-contact-form/phone-code-select.js +76 -56
  34. package/es/common/components/gesco-contact-form/services/api.js +7 -8
  35. package/es/common/components/gesco-contact-form/services/form.js +39 -25
  36. package/es/common/components/gesco-contact-form/services/messages.js +68 -65
  37. package/es/common/components/gesco-contact-form/services/plausible.js +8 -10
  38. package/es/common/components/gesco-contact-form/types.js +1 -1
  39. package/es/common/components/instant-search/hooks/use-constant.js +8 -6
  40. package/es/common/components/instant-search/hooks/use-debounced-search.js +14 -5
  41. package/es/common/components/instant-search/hooks/use-search.js +10 -6
  42. package/es/common/components/instant-search/index.js +1 -1
  43. package/es/common/components/instant-search/input.js +75 -45
  44. package/es/common/components/instant-search/instant-search.js +124 -73
  45. package/es/common/components/instant-search/links.js +74 -23
  46. package/es/common/components/instant-search/no-product.js +81 -4
  47. package/es/common/components/instant-search/products.js +118 -31
  48. package/es/common/components/instant-search/results.js +121 -32
  49. package/es/common/components/instant-search/services/api.js +12 -10
  50. package/es/common/components/instant-search/services/messages.js +3 -3
  51. package/es/common/components/instant-search/services/utils.js +34 -34
  52. package/es/common/components/msem-preset-editor/components/facet-selector.js +39 -22
  53. package/es/common/components/msem-preset-editor/components/form.js +54 -5
  54. package/es/common/components/msem-preset-editor/components/stay-picker.js +72 -33
  55. package/es/common/components/msem-preset-editor/components/widget-list-item.js +130 -42
  56. package/es/common/components/msem-preset-editor/components/widget-list.js +54 -29
  57. package/es/common/components/msem-preset-editor/editor-dialog.js +68 -21
  58. package/es/common/components/msem-preset-editor/editors/elloha.js +102 -69
  59. package/es/common/components/msem-preset-editor/editors/index.js +6 -6
  60. package/es/common/components/msem-preset-editor/editors/lodgings.js +316 -184
  61. package/es/common/components/msem-preset-editor/editors/ski-passes.js +267 -180
  62. package/es/common/components/msem-preset-editor/editors/standard-products.js +84 -56
  63. package/es/common/components/msem-preset-editor/editors/vakario.js +239 -171
  64. package/es/common/components/msem-preset-editor/msem-preset-editor.js +215 -129
  65. package/es/common/components/msem-preset-editor/services/api.js +69 -42
  66. package/es/common/components/msem-preset-editor/services/offers.js +61 -35
  67. package/es/common/components/msem-preset-editor/services/preset.js +22 -14
  68. package/es/common/components/msem-preset-editor/services/url-params.js +24 -24
  69. package/es/common/components/msem-preset-linker/components/actions.js +52 -40
  70. package/es/common/components/msem-preset-linker/components/overlays.js +57 -41
  71. package/es/common/components/msem-preset-linker/components/resort-selector.js +21 -11
  72. package/es/common/components/msem-preset-linker/hooks/use-msem-presets.js +43 -31
  73. package/es/common/components/msem-preset-linker/index.js +1 -1
  74. package/es/common/components/msem-preset-linker/msem-preset-linker.js +71 -42
  75. package/es/common/components/msem-preset-linker/services/url-params.js +10 -13
  76. package/es/common/components/plausible/hooks/use-plausible.js +22 -18
  77. package/es/common/components/plausible/index.js +1 -1
  78. package/es/common/components/plausible/plausible.js +23 -14
  79. package/es/common/components/plausible/services/callback.js +164 -115
  80. package/es/common/components/plausible/services/load.js +4 -6
  81. package/es/common/components/plausible/services/send-goal.js +6 -3
  82. package/es/common/components/scroll-spy.js +56 -43
  83. package/es/common/components/scrolling-carousel/index.js +1 -1
  84. package/es/common/components/scrolling-carousel/scrolling-carousel.js +94 -55
  85. package/es/common/components/tabbed-zones.js +100 -47
  86. package/es/common/hooks/use-faq.js +37 -36
  87. package/es/common/hooks/use-in-view.js +74 -74
  88. package/es/common/hooks/use-scroll-direction.js +37 -32
  89. package/es/common/hooks/use-stay.js +16 -13
  90. package/es/common/hooks/use-sticky.js +35 -35
  91. package/es/common/hooks/use-tunnel.js +42 -30
  92. package/es/common/hooks/use-update-effect.js +9 -9
  93. package/es/common/hooks/use-window-sizes.js +27 -28
  94. package/es/common/utils/cms.js +15 -17
  95. package/es/common/utils/cookies.js +10 -11
  96. package/es/common/utils/copy.js +11 -11
  97. package/es/common/utils/dates.js +8 -10
  98. package/es/common/utils/elements.js +14 -15
  99. package/es/common/utils/events.js +4 -19
  100. package/es/common/utils/file-manager.js +12 -10
  101. package/es/common/utils/load-js.js +10 -11
  102. package/es/common/utils/msem-widget.js +30 -23
  103. package/es/common/utils/url-parameters.js +11 -7
  104. package/es/esf/components/magic-box/index.js +1 -1
  105. package/es/esf/components/magic-box/magic-box.js +164 -102
  106. package/es/esf/components/parcours-esf/index.js +1 -1
  107. package/es/esf/components/parcours-esf/parcours-esf.js +45 -30
  108. package/es/esf/components/period-picker/period-picker.js +5 -5
  109. package/es/lbm/components/lumiplan/api.js +35 -18
  110. package/es/lbm/components/lumiplan/domain.js +96 -20
  111. package/es/lbm/components/lumiplan/i18n/translations.js +24 -15
  112. package/es/lbm/components/lumiplan/index.js +1 -1
  113. package/es/lbm/components/lumiplan/lumiplan.js +130 -102
  114. package/es/lbm/components/lumiplan/opening.js +116 -38
  115. package/es/lbm/components/lumiplan/pois.js +270 -161
  116. package/es/lbm/components/lumiplan/resort-selector.js +58 -36
  117. package/es/lbm/components/lumiplan/road-condition.js +100 -19
  118. package/es/lbm/components/lumiplan/todays-tips.js +45 -16
  119. package/es/lbm/components/lumiplan/types.js +1 -1
  120. package/es/lbm/components/lumiplan/weather/avalanche-risk.js +33 -8
  121. package/es/lbm/components/lumiplan/weather/index.js +1 -1
  122. package/es/lbm/components/lumiplan/weather/snow-data.js +71 -5
  123. package/es/lbm/components/lumiplan/weather/weather-data.js +126 -7
  124. package/es/lbm/components/lumiplan/weather/weather-days.js +76 -48
  125. package/es/lbm/components/lumiplan/weather/weather-icon.js +23 -20
  126. package/es/lbm/components/lumiplan/weather/weather-zones.js +71 -42
  127. package/es/lbm/components/lumiplan/weather/weather.js +90 -28
  128. package/package.json +4 -10
  129. package/es/common/components/admin-links/admin-links.d.ts +0 -11
  130. package/es/common/components/admin-links/admin-links.d.ts.map +0 -1
  131. package/es/common/components/admin-links/index.d.ts +0 -3
  132. package/es/common/components/admin-links/index.d.ts.map +0 -1
  133. package/es/common/components/breadcrumb.d.ts +0 -16
  134. package/es/common/components/breadcrumb.d.ts.map +0 -1
  135. package/es/common/components/custom-contact-form/custom-contact-form.d.ts +0 -25
  136. package/es/common/components/custom-contact-form/custom-contact-form.d.ts.map +0 -1
  137. package/es/common/components/gesco-contact-form/gesco-contact-form.d.ts +0 -17
  138. package/es/common/components/gesco-contact-form/gesco-contact-form.d.ts.map +0 -1
  139. package/es/common/components/gesco-contact-form/hooks/use-params.d.ts +0 -15
  140. package/es/common/components/gesco-contact-form/hooks/use-params.d.ts.map +0 -1
  141. package/es/common/components/gesco-contact-form/index.d.ts +0 -3
  142. package/es/common/components/gesco-contact-form/index.d.ts.map +0 -1
  143. package/es/common/components/gesco-contact-form/phone-code-select.d.ts +0 -7
  144. package/es/common/components/gesco-contact-form/phone-code-select.d.ts.map +0 -1
  145. package/es/common/components/gesco-contact-form/services/api.d.ts +0 -30
  146. package/es/common/components/gesco-contact-form/services/api.d.ts.map +0 -1
  147. package/es/common/components/gesco-contact-form/services/form.d.ts +0 -31
  148. package/es/common/components/gesco-contact-form/services/form.d.ts.map +0 -1
  149. package/es/common/components/gesco-contact-form/services/messages.d.ts +0 -34
  150. package/es/common/components/gesco-contact-form/services/messages.d.ts.map +0 -1
  151. package/es/common/components/gesco-contact-form/services/plausible.d.ts +0 -3
  152. package/es/common/components/gesco-contact-form/services/plausible.d.ts.map +0 -1
  153. package/es/common/components/gesco-contact-form/types.d.ts +0 -34
  154. package/es/common/components/gesco-contact-form/types.d.ts.map +0 -1
  155. package/es/common/components/instant-search/hooks/use-constant.d.ts +0 -2
  156. package/es/common/components/instant-search/hooks/use-constant.d.ts.map +0 -1
  157. package/es/common/components/instant-search/hooks/use-debounced-search.d.ts +0 -7
  158. package/es/common/components/instant-search/hooks/use-debounced-search.d.ts.map +0 -1
  159. package/es/common/components/instant-search/hooks/use-search.d.ts +0 -16
  160. package/es/common/components/instant-search/hooks/use-search.d.ts.map +0 -1
  161. package/es/common/components/instant-search/index.d.ts +0 -3
  162. package/es/common/components/instant-search/index.d.ts.map +0 -1
  163. package/es/common/components/instant-search/input.d.ts +0 -15
  164. package/es/common/components/instant-search/input.d.ts.map +0 -1
  165. package/es/common/components/instant-search/instant-search.d.ts +0 -14
  166. package/es/common/components/instant-search/instant-search.d.ts.map +0 -1
  167. package/es/common/components/instant-search/links.d.ts +0 -12
  168. package/es/common/components/instant-search/links.d.ts.map +0 -1
  169. package/es/common/components/instant-search/no-product.d.ts +0 -6
  170. package/es/common/components/instant-search/no-product.d.ts.map +0 -1
  171. package/es/common/components/instant-search/products.d.ts +0 -14
  172. package/es/common/components/instant-search/products.d.ts.map +0 -1
  173. package/es/common/components/instant-search/results.d.ts +0 -76
  174. package/es/common/components/instant-search/results.d.ts.map +0 -1
  175. package/es/common/components/instant-search/services/api.d.ts +0 -2
  176. package/es/common/components/instant-search/services/api.d.ts.map +0 -1
  177. package/es/common/components/instant-search/services/messages.d.ts +0 -2
  178. package/es/common/components/instant-search/services/messages.d.ts.map +0 -1
  179. package/es/common/components/instant-search/services/utils.d.ts +0 -4
  180. package/es/common/components/instant-search/services/utils.d.ts.map +0 -1
  181. package/es/common/components/msem-preset-editor/components/facet-selector.d.ts +0 -6
  182. package/es/common/components/msem-preset-editor/components/facet-selector.d.ts.map +0 -1
  183. package/es/common/components/msem-preset-editor/components/form.d.ts +0 -8
  184. package/es/common/components/msem-preset-editor/components/form.d.ts.map +0 -1
  185. package/es/common/components/msem-preset-editor/components/stay-picker.d.ts +0 -14
  186. package/es/common/components/msem-preset-editor/components/stay-picker.d.ts.map +0 -1
  187. package/es/common/components/msem-preset-editor/components/widget-list-item.d.ts +0 -12
  188. package/es/common/components/msem-preset-editor/components/widget-list-item.d.ts.map +0 -1
  189. package/es/common/components/msem-preset-editor/components/widget-list.d.ts +0 -17
  190. package/es/common/components/msem-preset-editor/components/widget-list.d.ts.map +0 -1
  191. package/es/common/components/msem-preset-editor/editor-dialog.d.ts +0 -30
  192. package/es/common/components/msem-preset-editor/editor-dialog.d.ts.map +0 -1
  193. package/es/common/components/msem-preset-editor/editors/elloha.d.ts +0 -15
  194. package/es/common/components/msem-preset-editor/editors/elloha.d.ts.map +0 -1
  195. package/es/common/components/msem-preset-editor/editors/index.d.ts +0 -14
  196. package/es/common/components/msem-preset-editor/editors/index.d.ts.map +0 -1
  197. package/es/common/components/msem-preset-editor/editors/lodgings.d.ts +0 -17
  198. package/es/common/components/msem-preset-editor/editors/lodgings.d.ts.map +0 -1
  199. package/es/common/components/msem-preset-editor/editors/ski-passes.d.ts +0 -16
  200. package/es/common/components/msem-preset-editor/editors/ski-passes.d.ts.map +0 -1
  201. package/es/common/components/msem-preset-editor/editors/standard-products.d.ts +0 -16
  202. package/es/common/components/msem-preset-editor/editors/standard-products.d.ts.map +0 -1
  203. package/es/common/components/msem-preset-editor/editors/vakario.d.ts +0 -15
  204. package/es/common/components/msem-preset-editor/editors/vakario.d.ts.map +0 -1
  205. package/es/common/components/msem-preset-editor/msem-preset-editor.d.ts +0 -28
  206. package/es/common/components/msem-preset-editor/msem-preset-editor.d.ts.map +0 -1
  207. package/es/common/components/msem-preset-editor/services/api.d.ts +0 -15
  208. package/es/common/components/msem-preset-editor/services/api.d.ts.map +0 -1
  209. package/es/common/components/msem-preset-editor/services/offers.d.ts +0 -47
  210. package/es/common/components/msem-preset-editor/services/offers.d.ts.map +0 -1
  211. package/es/common/components/msem-preset-editor/services/preset.d.ts +0 -40
  212. package/es/common/components/msem-preset-editor/services/preset.d.ts.map +0 -1
  213. package/es/common/components/msem-preset-editor/services/url-params.d.ts +0 -3
  214. package/es/common/components/msem-preset-editor/services/url-params.d.ts.map +0 -1
  215. package/es/common/components/msem-preset-linker/components/actions.d.ts +0 -11
  216. package/es/common/components/msem-preset-linker/components/actions.d.ts.map +0 -1
  217. package/es/common/components/msem-preset-linker/components/overlays.d.ts +0 -8
  218. package/es/common/components/msem-preset-linker/components/overlays.d.ts.map +0 -1
  219. package/es/common/components/msem-preset-linker/components/resort-selector.d.ts +0 -6
  220. package/es/common/components/msem-preset-linker/components/resort-selector.d.ts.map +0 -1
  221. package/es/common/components/msem-preset-linker/hooks/use-msem-presets.d.ts +0 -4
  222. package/es/common/components/msem-preset-linker/hooks/use-msem-presets.d.ts.map +0 -1
  223. package/es/common/components/msem-preset-linker/index.d.ts +0 -3
  224. package/es/common/components/msem-preset-linker/index.d.ts.map +0 -1
  225. package/es/common/components/msem-preset-linker/msem-preset-linker.d.ts +0 -30
  226. package/es/common/components/msem-preset-linker/msem-preset-linker.d.ts.map +0 -1
  227. package/es/common/components/msem-preset-linker/services/url-params.d.ts +0 -2
  228. package/es/common/components/msem-preset-linker/services/url-params.d.ts.map +0 -1
  229. package/es/common/components/plausible/hooks/use-plausible.d.ts +0 -12
  230. package/es/common/components/plausible/hooks/use-plausible.d.ts.map +0 -1
  231. package/es/common/components/plausible/index.d.ts +0 -8
  232. package/es/common/components/plausible/index.d.ts.map +0 -1
  233. package/es/common/components/plausible/plausible.d.ts +0 -7
  234. package/es/common/components/plausible/plausible.d.ts.map +0 -1
  235. package/es/common/components/plausible/services/callback.d.ts +0 -24
  236. package/es/common/components/plausible/services/callback.d.ts.map +0 -1
  237. package/es/common/components/plausible/services/load.d.ts +0 -2
  238. package/es/common/components/plausible/services/load.d.ts.map +0 -1
  239. package/es/common/components/plausible/services/send-goal.d.ts +0 -7
  240. package/es/common/components/plausible/services/send-goal.d.ts.map +0 -1
  241. package/es/common/components/scroll-spy.d.ts +0 -14
  242. package/es/common/components/scroll-spy.d.ts.map +0 -1
  243. package/es/common/components/scrolling-carousel/index.d.ts +0 -3
  244. package/es/common/components/scrolling-carousel/index.d.ts.map +0 -1
  245. package/es/common/components/scrolling-carousel/scrolling-carousel.d.ts +0 -8
  246. package/es/common/components/scrolling-carousel/scrolling-carousel.d.ts.map +0 -1
  247. package/es/common/components/tabbed-zones.d.ts +0 -12
  248. package/es/common/components/tabbed-zones.d.ts.map +0 -1
  249. package/es/common/hooks/use-faq.d.ts +0 -3
  250. package/es/common/hooks/use-faq.d.ts.map +0 -1
  251. package/es/common/hooks/use-in-view.d.ts +0 -5
  252. package/es/common/hooks/use-in-view.d.ts.map +0 -1
  253. package/es/common/hooks/use-scroll-direction.d.ts +0 -11
  254. package/es/common/hooks/use-scroll-direction.d.ts.map +0 -1
  255. package/es/common/hooks/use-stay.d.ts +0 -4
  256. package/es/common/hooks/use-stay.d.ts.map +0 -1
  257. package/es/common/hooks/use-sticky.d.ts +0 -4
  258. package/es/common/hooks/use-sticky.d.ts.map +0 -1
  259. package/es/common/hooks/use-tunnel.d.ts +0 -8
  260. package/es/common/hooks/use-tunnel.d.ts.map +0 -1
  261. package/es/common/hooks/use-update-effect.d.ts +0 -2
  262. package/es/common/hooks/use-update-effect.d.ts.map +0 -1
  263. package/es/common/hooks/use-window-sizes.d.ts +0 -7
  264. package/es/common/hooks/use-window-sizes.d.ts.map +0 -1
  265. package/es/common/utils/cms.d.ts +0 -4
  266. package/es/common/utils/cms.d.ts.map +0 -1
  267. package/es/common/utils/cookies.d.ts +0 -2
  268. package/es/common/utils/cookies.d.ts.map +0 -1
  269. package/es/common/utils/copy.d.ts +0 -2
  270. package/es/common/utils/copy.d.ts.map +0 -1
  271. package/es/common/utils/dates.d.ts +0 -2
  272. package/es/common/utils/dates.d.ts.map +0 -1
  273. package/es/common/utils/elements.d.ts +0 -5
  274. package/es/common/utils/elements.d.ts.map +0 -1
  275. package/es/common/utils/events.d.ts +0 -4
  276. package/es/common/utils/events.d.ts.map +0 -1
  277. package/es/common/utils/file-manager.d.ts +0 -13
  278. package/es/common/utils/file-manager.d.ts.map +0 -1
  279. package/es/common/utils/load-js.d.ts +0 -3
  280. package/es/common/utils/load-js.d.ts.map +0 -1
  281. package/es/common/utils/msem-widget.d.ts +0 -16
  282. package/es/common/utils/msem-widget.d.ts.map +0 -1
  283. package/es/common/utils/url-parameters.d.ts +0 -2
  284. package/es/common/utils/url-parameters.d.ts.map +0 -1
  285. package/es/esf/components/magic-box/index.d.ts +0 -3
  286. package/es/esf/components/magic-box/index.d.ts.map +0 -1
  287. package/es/esf/components/magic-box/magic-box.d.ts +0 -22
  288. package/es/esf/components/magic-box/magic-box.d.ts.map +0 -1
  289. package/es/esf/components/parcours-esf/index.d.ts +0 -3
  290. package/es/esf/components/parcours-esf/index.d.ts.map +0 -1
  291. package/es/esf/components/parcours-esf/parcours-esf.d.ts +0 -14
  292. package/es/esf/components/parcours-esf/parcours-esf.d.ts.map +0 -1
  293. package/es/lbm/components/lumiplan/api.d.ts +0 -8
  294. package/es/lbm/components/lumiplan/api.d.ts.map +0 -1
  295. package/es/lbm/components/lumiplan/domain.d.ts +0 -8
  296. package/es/lbm/components/lumiplan/domain.d.ts.map +0 -1
  297. package/es/lbm/components/lumiplan/i18n/translations.d.ts +0 -7
  298. package/es/lbm/components/lumiplan/i18n/translations.d.ts.map +0 -1
  299. package/es/lbm/components/lumiplan/index.d.ts +0 -3
  300. package/es/lbm/components/lumiplan/index.d.ts.map +0 -1
  301. package/es/lbm/components/lumiplan/lumiplan.d.ts +0 -2
  302. package/es/lbm/components/lumiplan/lumiplan.d.ts.map +0 -1
  303. package/es/lbm/components/lumiplan/opening.d.ts +0 -9
  304. package/es/lbm/components/lumiplan/opening.d.ts.map +0 -1
  305. package/es/lbm/components/lumiplan/pois.d.ts +0 -8
  306. package/es/lbm/components/lumiplan/pois.d.ts.map +0 -1
  307. package/es/lbm/components/lumiplan/resort-selector.d.ts +0 -12
  308. package/es/lbm/components/lumiplan/resort-selector.d.ts.map +0 -1
  309. package/es/lbm/components/lumiplan/road-condition.d.ts +0 -8
  310. package/es/lbm/components/lumiplan/road-condition.d.ts.map +0 -1
  311. package/es/lbm/components/lumiplan/todays-tips.d.ts +0 -8
  312. package/es/lbm/components/lumiplan/todays-tips.d.ts.map +0 -1
  313. package/es/lbm/components/lumiplan/types.d.ts +0 -285
  314. package/es/lbm/components/lumiplan/types.d.ts.map +0 -1
  315. package/es/lbm/components/lumiplan/weather/avalanche-risk.d.ts +0 -4
  316. package/es/lbm/components/lumiplan/weather/avalanche-risk.d.ts.map +0 -1
  317. package/es/lbm/components/lumiplan/weather/index.d.ts +0 -3
  318. package/es/lbm/components/lumiplan/weather/index.d.ts.map +0 -1
  319. package/es/lbm/components/lumiplan/weather/snow-data.d.ts +0 -8
  320. package/es/lbm/components/lumiplan/weather/snow-data.d.ts.map +0 -1
  321. package/es/lbm/components/lumiplan/weather/weather-data.d.ts +0 -9
  322. package/es/lbm/components/lumiplan/weather/weather-data.d.ts.map +0 -1
  323. package/es/lbm/components/lumiplan/weather/weather-days.d.ts +0 -7
  324. package/es/lbm/components/lumiplan/weather/weather-days.d.ts.map +0 -1
  325. package/es/lbm/components/lumiplan/weather/weather-icon.d.ts +0 -23
  326. package/es/lbm/components/lumiplan/weather/weather-icon.d.ts.map +0 -1
  327. package/es/lbm/components/lumiplan/weather/weather-zones.d.ts +0 -6
  328. package/es/lbm/components/lumiplan/weather/weather-zones.d.ts.map +0 -1
  329. package/es/lbm/components/lumiplan/weather/weather.d.ts +0 -8
  330. package/es/lbm/components/lumiplan/weather/weather.d.ts.map +0 -1
@@ -1,4 +1,3 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
1
  import * as React from "react";
3
2
  import Select, { formatOptions } from "dt-design-system/es/select";
4
3
  import Input from "dt-design-system/es/input";
@@ -14,93 +13,246 @@ import * as Form from "./services/form";
14
13
  import * as API from "./services/api";
15
14
  import * as Plausible from "./services/plausible";
16
15
  import styles from "./gesco-contact-form.module.css";
17
- export default function GescoContactForm({ lang = "fr", channel = "ESF", resort, merchant, categories, facet = "WINTER", host = "https://admin.mon-sejour-en-montagne.com", onSubmit, messagesOverrides = {}, }) {
18
- const { params, error } = useParams({
19
- lang,
20
- channel,
21
- resort,
22
- merchant,
23
- categories,
24
- host,
25
- });
26
- const [submiting, setSubmiting] = React.useState(false);
27
- const [stayNeeded, setStayNeeded] = React.useState(false);
28
- const [stayMin, setStayMin] = React.useState();
29
- const [stayToMin, setStayToMin] = React.useState();
30
- const [stayFromMax, setStayFromMax] = React.useState();
31
- const [sendSuccess, setSendSuccess] = React.useState(false);
32
- const [sendError, setSendError] = React.useState(false);
33
- const [formKey, setFormKey] = React.useState(0);
34
- React.useEffect(() => {
35
- const now = new Date();
36
- setStayMin(now.toISOString().split("T")[0]);
37
- }, []);
38
- const _lang = lang === "fr" ? "fr" : "en";
39
- const needCategory = stayNeeded &&
40
- params?.categories?.length !== undefined &&
41
- params?.categories?.length > 1;
42
- const loading = !error && params === undefined;
43
- const defaultCategoryValue = stayNeeded && params?.categories?.[0]?.code;
44
- const messages = Messages.get(_lang, messagesOverrides);
45
- const subjectOptions = formatOptions("label", "id", params?.subjects);
46
- const categoryOptions = formatOptions("label", "code", params?.categories);
47
- const countryOptions = formatOptions("name", "code", params?.countries);
48
- const submitForm = async (e) => {
49
- e.preventDefault();
50
- setSubmiting(true);
51
- setSendSuccess(false);
52
- setSendError(false);
53
- const form = e.currentTarget;
54
- let values = Form.extractValues(form.elements);
55
- if (!values.category && defaultCategoryValue) {
56
- values = { ...values, category: defaultCategoryValue };
57
- }
58
- const payload = Form.buildPayload({ lang: _lang, merchant, channel, resort, facet }, values);
59
- try {
60
- const result = await API.send(host, payload);
61
- if (result.error) {
62
- throw new Error(result.error);
63
- }
64
- onSubmit?.(payload);
65
- Plausible.sendEvent(values, params);
66
- setSendSuccess(true);
67
- form.reset();
68
- setFormKey(formKey + 1);
69
- }
70
- catch (e) {
71
- // eslint-disable-next-line no-console
72
- console.error(e);
73
- setSendError(true);
74
- }
75
- finally {
76
- setSubmiting(false);
77
- }
78
- };
79
- const checkIfStayIsNeeded = (value) => {
80
- const subject = params?.subjects?.find((s) => String(s.id) === value);
81
- setStayNeeded(Boolean(subject?.stay));
82
- };
83
- const hideSuccess = () => {
84
- setSendSuccess(false);
85
- };
86
- const hideError = () => {
87
- setSendError(false);
88
- };
89
- const updateStayToMin = (value) => {
90
- setStayToMin(value);
91
- };
92
- const updateStayFromMax = (value) => {
93
- setStayFromMax(value);
94
- };
95
- return (_jsxs("form", { className: styles.form, onSubmit: submitForm, children: [_jsx(Select, { name: "subject", label: messages.subject, className: styles.fullWidthField, placeholder: messages.defaultSubject, options: subjectOptions, disabled: Boolean(error) || loading, onValueChange: checkIfStayIsNeeded, required: true }), _jsx(Input, { name: "firstname", type: "text", icon: "User", label: messages.firstname, pattern: ".{2,}", patternError: Messages.format(messages.lengthError, {
96
- label: messages.firstname,
97
- length: "1",
98
- }), disabled: Boolean(error) || loading, required: true }), _jsx(Input, { name: "lastname", type: "text", icon: "User", label: messages.lastname, pattern: ".{2,}", patternError: Messages.format(messages.lengthError, {
99
- label: messages.lastname,
100
- length: "1",
101
- }), disabled: Boolean(error) || loading, required: true }), _jsx(Input, { name: "email", type: "email", icon: "Mail", label: messages.email, pattern: "[^@\\s]+@[^@\\s]+\\.[^@\\s]+", patternError: messages.emailError, disabled: Boolean(error) || loading, required: true }), _jsxs("div", { className: styles.phoneGroup, children: [_jsx(PhoneCodeSelect, { messages: messages, disabled: Boolean(error) || loading }), _jsx(Input, { name: "phone", type: "phone", className: styles.phoneField, label: messages.phone, inputMode: "numeric", pattern: "[0-9 ]{9,15}$", patternError: messages.phoneError, disabled: Boolean(error) || loading, required: true })] }), _jsx(Select, { name: "country", icon: "Globe", label: messages.country, className: styles.fullWidthField, placeholder: messages.defaultCountry, options: countryOptions, disabled: Boolean(error) || loading, required: true }), needCategory && (_jsx(Select, { name: "category", icon: "Plane", label: messages.category, className: styles.fullWidthField, placeholder: messages.defaultCategory, options: categoryOptions, disabled: Boolean(error) || loading, required: true })), stayNeeded && (_jsxs(_Fragment, { children: [_jsx(Input, { name: "stayFrom", className: styles.stayField, type: "date", label: messages.stayFromDate, placeholder: messages.dateFormat, onValueChange: updateStayToMin, hint: stayFromMax, min: stayMin, max: stayFromMax, disabled: Boolean(error) || loading, patternError: Messages.format(messages.mandatoryError, {
102
- label: messages.stayFrom,
103
- }), extended: true, required: true }), _jsx(Input, { name: "stayTo", className: styles.stayField, type: "date", label: messages.stayToDate, placeholder: messages.dateFormat, onValueChange: updateStayFromMax, hint: stayToMin, min: stayToMin || stayMin, disabled: Boolean(error) || loading, patternError: Messages.format(messages.mandatoryError, {
104
- label: messages.stayTo,
105
- }), extended: true, required: true })] })), _jsx(Textarea, { name: "message", className: styles.fullWidthField, label: messages.message, disabled: Boolean(error) || loading, required: true, autoSizing: true }), _jsx("div", { className: styles.send, children: _jsxs(Button, { type: "submit", disabled: Boolean(error) || loading || submiting, children: [submiting ? _jsx(Loader, { className: styles.loader }) : _jsx(Icons.Plane, {}), messages.submit] }) }), sendSuccess && (_jsx(Information, { className: styles.response, type: "success", close: hideSuccess, children: messages.sendSucesss })), sendError && (_jsx(Information, { className: styles.response, type: "error", close: hideError, children: messages.sendError })), error && (_jsx(Information, { className: styles.error, type: "warning", children: messages.parametersError }))] }, formKey));
106
- }
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
+ import { jsxs as _jsxs } from "react/jsx-runtime";
18
+ import { Fragment as _Fragment } from "react/jsx-runtime";
19
+ export default function GescoContactForm({
20
+ lang = "fr",
21
+ channel = "ESF",
22
+ resort,
23
+ merchant,
24
+ categories,
25
+ facet = "WINTER",
26
+ host = "https://admin.mon-sejour-en-montagne.com",
27
+ onSubmit,
28
+ messagesOverrides = {}
29
+ }) {
30
+ const {
31
+ params,
32
+ error
33
+ } = useParams({
34
+ lang,
35
+ channel,
36
+ resort,
37
+ merchant,
38
+ categories,
39
+ host
40
+ });
41
+ const [submiting, setSubmiting] = React.useState(false);
42
+ const [stayNeeded, setStayNeeded] = React.useState(false);
43
+ const [stayMin, setStayMin] = React.useState();
44
+ const [stayToMin, setStayToMin] = React.useState();
45
+ const [stayFromMax, setStayFromMax] = React.useState();
46
+ const [sendSuccess, setSendSuccess] = React.useState(false);
47
+ const [sendError, setSendError] = React.useState(false);
48
+ const [formKey, setFormKey] = React.useState(0);
49
+ React.useEffect(() => {
50
+ const now = new Date();
51
+ setStayMin(now.toISOString().split("T")[0]);
52
+ }, []);
53
+ const _lang = lang === "fr" ? "fr" : "en";
54
+ const needCategory = stayNeeded && params?.categories?.length !== undefined && params?.categories?.length > 1;
55
+ const loading = !error && params === undefined;
56
+ const defaultCategoryValue = stayNeeded && params?.categories?.[0]?.code;
57
+ const messages = Messages.get(_lang, messagesOverrides);
58
+ const subjectOptions = formatOptions("label", "id", params?.subjects);
59
+ const categoryOptions = formatOptions("label", "code", params?.categories);
60
+ const countryOptions = formatOptions("name", "code", params?.countries);
61
+ const submitForm = async e => {
62
+ e.preventDefault();
63
+ setSubmiting(true);
64
+ setSendSuccess(false);
65
+ setSendError(false);
66
+ const form = e.currentTarget;
67
+ let values = Form.extractValues(form.elements);
68
+ if (!values.category && defaultCategoryValue) {
69
+ values = {
70
+ ...values,
71
+ category: defaultCategoryValue
72
+ };
73
+ }
74
+ const payload = Form.buildPayload({
75
+ lang: _lang,
76
+ merchant,
77
+ channel,
78
+ resort,
79
+ facet
80
+ }, values);
81
+ try {
82
+ const result = await API.send(host, payload);
83
+ if (result.error) {
84
+ throw new Error(result.error);
85
+ }
86
+ onSubmit?.(payload);
87
+ Plausible.sendEvent(values, params);
88
+ setSendSuccess(true);
89
+ form.reset();
90
+ setFormKey(formKey + 1);
91
+ } catch (e) {
92
+ console.error(e);
93
+ setSendError(true);
94
+ } finally {
95
+ setSubmiting(false);
96
+ }
97
+ };
98
+ const checkIfStayIsNeeded = value => {
99
+ const subject = params?.subjects?.find(s => String(s.id) === value);
100
+ setStayNeeded(Boolean(subject?.stay));
101
+ };
102
+ const hideSuccess = () => {
103
+ setSendSuccess(false);
104
+ };
105
+ const hideError = () => {
106
+ setSendError(false);
107
+ };
108
+ const updateStayToMin = value => {
109
+ setStayToMin(value);
110
+ };
111
+ const updateStayFromMax = value => {
112
+ setStayFromMax(value);
113
+ };
114
+ return _jsxs("form", {
115
+ className: styles.form,
116
+ onSubmit: submitForm,
117
+ children: [_jsx(Select, {
118
+ name: "subject",
119
+ label: messages.subject,
120
+ className: styles.fullWidthField,
121
+ placeholder: messages.defaultSubject,
122
+ options: subjectOptions,
123
+ disabled: Boolean(error) || loading,
124
+ onValueChange: checkIfStayIsNeeded,
125
+ required: true
126
+ }), _jsx(Input, {
127
+ name: "firstname",
128
+ type: "text",
129
+ icon: "User",
130
+ label: messages.firstname,
131
+ pattern: ".{2,}",
132
+ patternError: Messages.format(messages.lengthError, {
133
+ label: messages.firstname,
134
+ length: "1"
135
+ }),
136
+ disabled: Boolean(error) || loading,
137
+ required: true
138
+ }), _jsx(Input, {
139
+ name: "lastname",
140
+ type: "text",
141
+ icon: "User",
142
+ label: messages.lastname,
143
+ pattern: ".{2,}",
144
+ patternError: Messages.format(messages.lengthError, {
145
+ label: messages.lastname,
146
+ length: "1"
147
+ }),
148
+ disabled: Boolean(error) || loading,
149
+ required: true
150
+ }), _jsx(Input, {
151
+ name: "email",
152
+ type: "email",
153
+ icon: "Mail",
154
+ label: messages.email,
155
+ pattern: "[^@\\s]+@[^@\\s]+\\.[^@\\s]+",
156
+ patternError: messages.emailError,
157
+ disabled: Boolean(error) || loading,
158
+ required: true
159
+ }), _jsxs("div", {
160
+ className: styles.phoneGroup,
161
+ children: [_jsx(PhoneCodeSelect, {
162
+ messages: messages,
163
+ disabled: Boolean(error) || loading
164
+ }), _jsx(Input, {
165
+ name: "phone",
166
+ type: "phone",
167
+ className: styles.phoneField,
168
+ label: messages.phone,
169
+ inputMode: "numeric",
170
+ pattern: "[0-9 ]{9,15}$",
171
+ patternError: messages.phoneError,
172
+ disabled: Boolean(error) || loading,
173
+ required: true
174
+ })]
175
+ }), _jsx(Select, {
176
+ name: "country",
177
+ icon: "Globe",
178
+ label: messages.country,
179
+ className: styles.fullWidthField,
180
+ placeholder: messages.defaultCountry,
181
+ options: countryOptions,
182
+ disabled: Boolean(error) || loading,
183
+ required: true
184
+ }), needCategory && _jsx(Select, {
185
+ name: "category",
186
+ icon: "Plane",
187
+ label: messages.category,
188
+ className: styles.fullWidthField,
189
+ placeholder: messages.defaultCategory,
190
+ options: categoryOptions,
191
+ disabled: Boolean(error) || loading,
192
+ required: true
193
+ }), stayNeeded && _jsxs(_Fragment, {
194
+ children: [_jsx(Input, {
195
+ name: "stayFrom",
196
+ className: styles.stayField,
197
+ type: "date",
198
+ label: messages.stayFromDate,
199
+ placeholder: messages.dateFormat,
200
+ onValueChange: updateStayToMin,
201
+ hint: stayFromMax,
202
+ min: stayMin,
203
+ max: stayFromMax,
204
+ disabled: Boolean(error) || loading,
205
+ patternError: Messages.format(messages.mandatoryError, {
206
+ label: messages.stayFrom
207
+ }),
208
+ extended: true,
209
+ required: true
210
+ }), _jsx(Input, {
211
+ name: "stayTo",
212
+ className: styles.stayField,
213
+ type: "date",
214
+ label: messages.stayToDate,
215
+ placeholder: messages.dateFormat,
216
+ onValueChange: updateStayFromMax,
217
+ hint: stayToMin,
218
+ min: stayToMin || stayMin,
219
+ disabled: Boolean(error) || loading,
220
+ patternError: Messages.format(messages.mandatoryError, {
221
+ label: messages.stayTo
222
+ }),
223
+ extended: true,
224
+ required: true
225
+ })]
226
+ }), _jsx(Textarea, {
227
+ name: "message",
228
+ className: styles.fullWidthField,
229
+ label: messages.message,
230
+ disabled: Boolean(error) || loading,
231
+ required: true,
232
+ autoSizing: true
233
+ }), _jsx("div", {
234
+ className: styles.send,
235
+ children: _jsxs(Button, {
236
+ type: "submit",
237
+ disabled: Boolean(error) || loading || submiting,
238
+ children: [submiting ? _jsx(Loader, {
239
+ className: styles.loader
240
+ }) : _jsx(Icons.Plane, {}), messages.submit]
241
+ })
242
+ }), sendSuccess && _jsx(Information, {
243
+ className: styles.response,
244
+ type: "success",
245
+ close: hideSuccess,
246
+ children: messages.sendSucesss
247
+ }), sendError && _jsx(Information, {
248
+ className: styles.response,
249
+ type: "error",
250
+ close: hideError,
251
+ children: messages.sendError
252
+ }), error && _jsx(Information, {
253
+ className: styles.error,
254
+ type: "warning",
255
+ children: messages.parametersError
256
+ })]
257
+ }, formKey);
258
+ }
@@ -1,24 +1,39 @@
1
1
  import * as React from "react";
2
2
  import * as API from "../services/api";
3
3
  export default function useParams(args) {
4
- const [params, setParams] = React.useState();
5
- const [error, setError] = React.useState();
6
- const { lang, resort, merchant, channel, categories, host } = args;
7
- React.useEffect(() => {
8
- const runEffect = async () => {
9
- try {
10
- const payload = { lang, channel, resort, merchant, categories };
11
- const result = await API.getParams(host, payload);
12
- if (!result || result.error) {
13
- throw new Error(result.error);
14
- }
15
- setParams(result);
16
- }
17
- catch (error) {
18
- setError(error);
19
- }
4
+ const [params, setParams] = React.useState();
5
+ const [error, setError] = React.useState();
6
+ const {
7
+ lang,
8
+ resort,
9
+ merchant,
10
+ channel,
11
+ categories,
12
+ host
13
+ } = args;
14
+ React.useEffect(() => {
15
+ const runEffect = async () => {
16
+ try {
17
+ const payload = {
18
+ lang,
19
+ channel,
20
+ resort,
21
+ merchant,
22
+ categories
20
23
  };
21
- runEffect();
22
- }, [categories, channel, host, lang, merchant, resort]);
23
- return { params, error };
24
- }
24
+ const result = await API.getParams(host, payload);
25
+ if (!result || result.error) {
26
+ throw new Error(result.error);
27
+ }
28
+ setParams(result);
29
+ } catch (error) {
30
+ setError(error);
31
+ }
32
+ };
33
+ runEffect();
34
+ }, [categories, channel, host, lang, merchant, resort]);
35
+ return {
36
+ params,
37
+ error
38
+ };
39
+ }
@@ -1,2 +1,2 @@
1
1
  import GescoContactForm from "./gesco-contact-form";
2
- export default GescoContactForm;
2
+ export default GescoContactForm;
@@ -1,61 +1,81 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import * as React from "react";
2
2
  import Select from "dt-design-system/es/custom-select";
3
3
  import * as Flags from "dt-design-system/es/flags";
4
4
  import prefixes from "./data/phone-prefixes.json";
5
5
  import styles from "./phone-code-select.module.css";
6
- const HIGHLIGHTED_COUNTRIES = [
7
- "France",
8
- "United Kingdom",
9
- "Belgium",
10
- "Netherlands",
11
- "Switzerland",
12
- "United States",
13
- "Luxembourg",
14
- "Ireland",
15
- "Spain",
16
- "Brazil",
17
- "Germany",
18
- "Italy",
19
- "Portugal",
20
- "Australia",
21
- ];
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ import { jsxs as _jsxs } from "react/jsx-runtime";
8
+ const HIGHLIGHTED_COUNTRIES = ["France", "United Kingdom", "Belgium", "Netherlands", "Switzerland", "United States", "Luxembourg", "Ireland", "Spain", "Brazil", "Germany", "Italy", "Portugal", "Australia"];
22
9
  const FIRST_PREFIX = prefixes[0];
23
- export default function PhoneCodeSelect({ messages, disabled }) {
24
- const defaultValue = `${FIRST_PREFIX.country}|${FIRST_PREFIX.code}`;
25
- const deduppedPrefixes = prefixes
26
- .reduce((acc, prefix) => {
27
- const { code } = prefix;
28
- const splitted = code
29
- .split(", ")
30
- .map((splitted) => ({ ...prefix, code: splitted }));
31
- return [...acc, ...splitted];
32
- }, [])
33
- .sort((a, b) => {
34
- if (HIGHLIGHTED_COUNTRIES.includes(a.country) ||
35
- HIGHLIGHTED_COUNTRIES.includes(b.country)) {
36
- return 0;
37
- }
38
- return a.code.localeCompare(b.code);
39
- });
40
- const bareOptions = deduppedPrefixes.map(({ country, code, iso }) => {
41
- const Icon = Flags[iso.toLowerCase()] || "svg";
42
- return {
43
- label: (_jsxs("span", { className: styles.option, children: [_jsx(Icon, { className: styles.icon }), _jsxs("span", { className: styles.code, children: ["+", code] })] })),
44
- value: `${country}|${code}`,
45
- kind: "item",
46
- };
47
- });
48
- const separator = { kind: "separator" };
49
- const { highlighted, others } = bareOptions.reduce((acc, option) => {
50
- const { value } = option;
51
- const [country] = value.split("|");
52
- const isHighlighted = HIGHLIGHTED_COUNTRIES.includes(country);
53
- const key = isHighlighted ? "highlighted" : "others";
54
- return {
55
- ...acc,
56
- [key]: [...acc[key], option],
57
- };
58
- }, { highlighted: [], others: [] });
59
- const options = [...highlighted, separator, ...others];
60
- return (_jsx(Select, { name: "phoneCode", className: styles.select, label: messages.phoneCode, options: options, defaultValue: defaultValue, disabled: disabled, required: true }));
61
- }
10
+ export default function PhoneCodeSelect({
11
+ messages,
12
+ disabled
13
+ }) {
14
+ const defaultValue = `${FIRST_PREFIX.country}|${FIRST_PREFIX.code}`;
15
+ const deduppedPrefixes = prefixes.reduce((acc, prefix) => {
16
+ const {
17
+ code
18
+ } = prefix;
19
+ const splitted = code.split(", ").map(splitted => ({
20
+ ...prefix,
21
+ code: splitted
22
+ }));
23
+ return [...acc, ...splitted];
24
+ }, []).sort((a, b) => {
25
+ if (HIGHLIGHTED_COUNTRIES.includes(a.country) || HIGHLIGHTED_COUNTRIES.includes(b.country)) {
26
+ return 0;
27
+ }
28
+ return a.code.localeCompare(b.code);
29
+ });
30
+ const bareOptions = deduppedPrefixes.map(({
31
+ country,
32
+ code,
33
+ iso
34
+ }) => {
35
+ const Icon = Flags[iso.toLowerCase()] || "svg";
36
+ return {
37
+ label: _jsxs("span", {
38
+ className: styles.option,
39
+ children: [_jsx(Icon, {
40
+ className: styles.icon
41
+ }), _jsxs("span", {
42
+ className: styles.code,
43
+ children: ["+", code]
44
+ })]
45
+ }),
46
+ value: `${country}|${code}`,
47
+ kind: "item"
48
+ };
49
+ });
50
+ const separator = {
51
+ kind: "separator"
52
+ };
53
+ const {
54
+ highlighted,
55
+ others
56
+ } = bareOptions.reduce((acc, option) => {
57
+ const {
58
+ value
59
+ } = option;
60
+ const [country] = value.split("|");
61
+ const isHighlighted = HIGHLIGHTED_COUNTRIES.includes(country);
62
+ const key = isHighlighted ? "highlighted" : "others";
63
+ return {
64
+ ...acc,
65
+ [key]: [...acc[key], option]
66
+ };
67
+ }, {
68
+ highlighted: [],
69
+ others: []
70
+ });
71
+ const options = [...highlighted, separator, ...others];
72
+ return _jsx(Select, {
73
+ name: "phoneCode",
74
+ className: styles.select,
75
+ label: messages.phoneCode,
76
+ options: options,
77
+ defaultValue: defaultValue,
78
+ disabled: disabled,
79
+ required: true
80
+ });
81
+ }
@@ -1,12 +1,11 @@
1
- // import * as Fetcher from "ublo-lib/es/common/utils/fetcher";
2
1
  import * as Fetcher from "../../../utils/fetcher";
3
2
  export async function getParams(host, payload) {
4
- const endpoint = `${host}/api/gesco/contact/parameters`;
5
- const result = await Fetcher.post(endpoint, payload);
6
- return result;
3
+ const endpoint = `${host}/api/gesco/contact/parameters`;
4
+ const result = await Fetcher.post(endpoint, payload);
5
+ return result;
7
6
  }
8
7
  export async function send(host, payload) {
9
- const endpoint = `${host}/api/gesco/contact/send`;
10
- const result = await Fetcher.post(endpoint, payload);
11
- return result;
12
- }
8
+ const endpoint = `${host}/api/gesco/contact/send`;
9
+ const result = await Fetcher.post(endpoint, payload);
10
+ return result;
11
+ }
@@ -1,28 +1,42 @@
1
1
  export function extractValues(elements) {
2
- return Array.from(elements).reduce((acc, element) => {
3
- // exclude submit button
4
- if (element instanceof HTMLButtonElement) {
5
- return acc;
6
- }
7
- const { name, value } = element;
8
- // ignore hidden inputs
9
- if (!name) {
10
- return acc;
11
- }
12
- // merge phone code and phone number + cleanup
13
- if (name === "phone") {
14
- const phoneWithoutZero = value.replace(/\b0+/g, "");
15
- const phoneWithoutSpacesAndDots = phoneWithoutZero.replace(/[\s.]+/g, "");
16
- const phoneCode = acc.phoneCode || "";
17
- const [, code] = phoneCode.split("|");
18
- const phoneWithCode = `+${code}${phoneWithoutSpacesAndDots}`;
19
- delete acc.phoneCode;
20
- return { ...acc, phone: phoneWithCode };
21
- }
22
- return { ...acc, [name]: value };
23
- }, {});
2
+ return Array.from(elements).reduce((acc, element) => {
3
+ if (element instanceof HTMLButtonElement) {
4
+ return acc;
5
+ }
6
+ const {
7
+ name,
8
+ value
9
+ } = element;
10
+ if (!name) {
11
+ return acc;
12
+ }
13
+ if (name === "phone") {
14
+ const phoneWithoutZero = value.replace(/\b0+/g, "");
15
+ const phoneWithoutSpacesAndDots = phoneWithoutZero.replace(/[\s.]+/g, "");
16
+ const phoneCode = acc.phoneCode || "";
17
+ const [, code] = phoneCode.split("|");
18
+ const phoneWithCode = `+${code}${phoneWithoutSpacesAndDots}`;
19
+ delete acc.phoneCode;
20
+ return {
21
+ ...acc,
22
+ phone: phoneWithCode
23
+ };
24
+ }
25
+ return {
26
+ ...acc,
27
+ [name]: value
28
+ };
29
+ }, {});
24
30
  }
25
31
  export function buildPayload(params, values) {
26
- const { userAgent, language: browserLang } = navigator || {};
27
- return { ...params, ...values, userAgent, browserLang };
28
- }
32
+ const {
33
+ userAgent,
34
+ language: browserLang
35
+ } = navigator || {};
36
+ return {
37
+ ...params,
38
+ ...values,
39
+ userAgent,
40
+ browserLang
41
+ };
42
+ }