@mirai/core 0.3.173 → 0.3.176

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 (189) hide show
  1. package/.env +7 -4
  2. package/build/components/Booking/Booking.js +1 -1
  3. package/build/components/Booking/Booking.js.map +1 -1
  4. package/build/components/Booking/Booking.l10n.js +0 -15
  5. package/build/components/Booking/Booking.l10n.js.map +1 -1
  6. package/build/components/Booking/Booking.module.css +0 -9
  7. package/build/components/Booking/components/Hotelverse/Hotelverse.js +1 -1
  8. package/build/components/Booking/components/Hotelverse/Hotelverse.js.map +1 -1
  9. package/build/components/Booking/partials/index.js +2 -13
  10. package/build/components/Booking/partials/index.js.map +1 -1
  11. package/build/components/Chat/Chat.constants.js +28 -0
  12. package/build/components/Chat/Chat.constants.js.map +1 -0
  13. package/build/components/Chat/Chat.js +231 -0
  14. package/build/components/Chat/Chat.js.map +1 -0
  15. package/build/components/Chat/Chat.l10n.js +24 -0
  16. package/build/components/Chat/Chat.l10n.js.map +1 -0
  17. package/build/components/Chat/Chat.module.css +90 -0
  18. package/build/components/Chat/Chat.theme.module.css +49 -0
  19. package/build/components/Chat/components/Avatar/Avatar.js +68 -0
  20. package/build/components/Chat/components/Avatar/Avatar.js.map +1 -0
  21. package/build/components/Chat/components/Avatar/Avatar.module.css +81 -0
  22. package/build/components/Chat/components/Avatar/__tests__/__snapshots__/Avatar.test.jsx.snap +97 -0
  23. package/build/components/Chat/components/Avatar/index.js +17 -0
  24. package/build/components/Chat/components/Avatar/index.js.map +1 -0
  25. package/build/components/Chat/components/Input/Input.js +72 -0
  26. package/build/components/Chat/components/Input/Input.js.map +1 -0
  27. package/build/components/Chat/components/Input/Input.l10n.js +15 -0
  28. package/build/components/Chat/components/Input/Input.l10n.js.map +1 -0
  29. package/build/components/Chat/components/Input/Input.module.css +19 -0
  30. package/build/components/Chat/components/Input/__tests__/__snapshots__/Input.test.jsx.snap +175 -0
  31. package/build/components/Chat/components/Input/index.js +17 -0
  32. package/build/components/Chat/components/Input/index.js.map +1 -0
  33. package/build/components/Chat/components/InputRich/InputRich.List.js +52 -0
  34. package/build/components/Chat/components/InputRich/InputRich.List.js.map +1 -0
  35. package/build/components/Chat/components/InputRich/InputRich.js +182 -0
  36. package/build/components/Chat/components/InputRich/InputRich.js.map +1 -0
  37. package/build/components/Chat/components/InputRich/InputRich.l10n.js +12 -0
  38. package/build/components/Chat/components/InputRich/InputRich.l10n.js.map +1 -0
  39. package/build/components/Chat/components/InputRich/InputRich.module.css +73 -0
  40. package/build/components/Chat/components/InputRich/__tests__/__snapshots__/InputRich.test.jsx.snap +275 -0
  41. package/build/components/Chat/components/InputRich/helpers/getVerboseList.js +20 -0
  42. package/build/components/Chat/components/InputRich/helpers/getVerboseList.js.map +1 -0
  43. package/build/components/Chat/components/InputRich/helpers/getVerboseOccupation.js +27 -0
  44. package/build/components/Chat/components/InputRich/helpers/getVerboseOccupation.js.map +1 -0
  45. package/build/components/Chat/components/InputRich/helpers/index.js +28 -0
  46. package/build/components/Chat/components/InputRich/helpers/index.js.map +1 -0
  47. package/build/components/Chat/components/InputRich/index.js +17 -0
  48. package/build/components/Chat/components/InputRich/index.js.map +1 -0
  49. package/build/components/Chat/components/Message/Message.constants.js +18 -0
  50. package/build/components/Chat/components/Message/Message.constants.js.map +1 -0
  51. package/build/components/Chat/components/Message/Message.js +104 -0
  52. package/build/components/Chat/components/Message/Message.js.map +1 -0
  53. package/build/components/Chat/components/Message/Message.module.css +126 -0
  54. package/build/components/Chat/components/Message/__tests__/__snapshots__/Message.test.jsx.snap +211 -0
  55. package/build/components/Chat/components/Message/components/Booking.js +63 -0
  56. package/build/components/Chat/components/Message/components/Booking.js.map +1 -0
  57. package/build/components/Chat/components/Message/components/Card.js +67 -0
  58. package/build/components/Chat/components/Message/components/Card.js.map +1 -0
  59. package/build/components/Chat/components/Message/components/Card.module.css +41 -0
  60. package/build/components/Chat/components/Message/components/Environment.js +58 -0
  61. package/build/components/Chat/components/Message/components/Environment.js.map +1 -0
  62. package/build/components/Chat/components/Message/components/Environment.module.css +22 -0
  63. package/build/components/Chat/components/Message/components/index.js +39 -0
  64. package/build/components/Chat/components/Message/components/index.js.map +1 -0
  65. package/build/components/Chat/components/Message/helpers/getActionIcon.js +13 -0
  66. package/build/components/Chat/components/Message/helpers/getActionIcon.js.map +1 -0
  67. package/build/components/Chat/components/Message/helpers/getTime.js +28 -0
  68. package/build/components/Chat/components/Message/helpers/getTime.js.map +1 -0
  69. package/build/components/Chat/components/Message/helpers/index.js +28 -0
  70. package/build/components/Chat/components/Message/helpers/index.js.map +1 -0
  71. package/build/components/Chat/components/Message/index.js +17 -0
  72. package/build/components/Chat/components/Message/index.js.map +1 -0
  73. package/build/components/Chat/components/Message/intents/BookingQuery.js +66 -0
  74. package/build/components/Chat/components/Message/intents/BookingQuery.js.map +1 -0
  75. package/build/components/Chat/components/Message/intents/HotelInfo.js +73 -0
  76. package/build/components/Chat/components/Message/intents/HotelInfo.js.map +1 -0
  77. package/build/components/Chat/components/Message/intents/Offers.js +57 -0
  78. package/build/components/Chat/components/Message/intents/Offers.js.map +1 -0
  79. package/build/components/Chat/components/Message/intents/Unknown.js +67 -0
  80. package/build/components/Chat/components/Message/intents/Unknown.js.map +1 -0
  81. package/build/components/Chat/components/Message/intents/index.js +50 -0
  82. package/build/components/Chat/components/Message/intents/index.js.map +1 -0
  83. package/build/components/Chat/components/Offline/Offline.js +22 -0
  84. package/build/components/Chat/components/Offline/Offline.js.map +1 -0
  85. package/build/components/Chat/components/Offline/Offline.module.css +3 -0
  86. package/build/components/Chat/components/Offline/index.js +17 -0
  87. package/build/components/Chat/components/Offline/index.js.map +1 -0
  88. package/build/components/Chat/components/index.js +61 -0
  89. package/build/components/Chat/components/index.js.map +1 -0
  90. package/build/components/Chat/helpers/getVerboseDate.js +18 -0
  91. package/build/components/Chat/helpers/getVerboseDate.js.map +1 -0
  92. package/build/components/Chat/helpers/index.js +17 -0
  93. package/build/components/Chat/helpers/index.js.map +1 -0
  94. package/build/components/Chat/index.js +17 -0
  95. package/build/components/Chat/index.js.map +1 -0
  96. package/build/components/Checkout/Checkout.js +20 -5
  97. package/build/components/Checkout/Checkout.js.map +1 -1
  98. package/build/components/Checkout/Checkout.module.css +14 -0
  99. package/build/components/Checkout/helpers/getFieldProps.js +3 -1
  100. package/build/components/Checkout/helpers/getFieldProps.js.map +1 -1
  101. package/build/components/Checkout/partials/Checkout.Confirmation.js +11 -7
  102. package/build/components/Checkout/partials/Checkout.Confirmation.js.map +1 -1
  103. package/build/components/Checkout/partials/Checkout.Form.js +23 -4
  104. package/build/components/Checkout/partials/Checkout.Form.js.map +1 -1
  105. package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Form.test.js.snap +932 -16
  106. package/build/components/Profile/components/Settings/Settings.Account.js +26 -8
  107. package/build/components/Profile/components/Settings/Settings.Account.js.map +1 -1
  108. package/build/components/Profile/components/Settings/Settings.module.css +4 -0
  109. package/build/components/Rates/Rates.constants.js +1 -0
  110. package/build/components/Rates/Rates.constants.js.map +1 -1
  111. package/build/components/Rates/Rates.js +2 -0
  112. package/build/components/Rates/Rates.js.map +1 -1
  113. package/build/components/Rates/components/Hotelverse/Hotelverse.js +1 -1
  114. package/build/components/Rates/components/Hotelverse/Hotelverse.js.map +1 -1
  115. package/build/components/Rates/components/Item/components/Features/Features.js +27 -2
  116. package/build/components/Rates/components/Item/components/Features/Features.js.map +1 -1
  117. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +5 -1
  118. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
  119. package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.js +1 -1
  120. package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.js.map +1 -1
  121. package/build/components/Signup/Signup.js +24 -6
  122. package/build/components/Signup/Signup.js.map +1 -1
  123. package/build/components/Signup/Signup.module.css +4 -0
  124. package/build/components/Signup/__tests__/__snapshots__/Signup.test.js.snap +24 -9
  125. package/build/components/{Booking/partials/Booking.Others.js → __shared__/BookingTerms/BookingTerms.js} +17 -18
  126. package/build/components/__shared__/BookingTerms/BookingTerms.js.map +1 -0
  127. package/build/components/__shared__/BookingTerms/BookingTerms.l10n.js +27 -0
  128. package/build/components/__shared__/BookingTerms/BookingTerms.l10n.js.map +1 -0
  129. package/build/components/__shared__/BookingTerms/BookingTerms.module.css +42 -0
  130. package/build/components/{Booking/partials/__tests__/__snapshots__/Booking.Others.test.js.snap → __shared__/BookingTerms/__tests__/__snapshots__/BookingTerms.test.js.snap} +4 -8
  131. package/build/components/__shared__/BookingTerms/index.js +17 -0
  132. package/build/components/__shared__/BookingTerms/index.js.map +1 -0
  133. package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.js +52 -0
  134. package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.js.map +1 -0
  135. package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.l10n.js +62 -0
  136. package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.l10n.js.map +1 -0
  137. package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.module.css +8 -0
  138. package/build/components/__shared__/NotificationRequiredFields/index.js +17 -0
  139. package/build/components/__shared__/NotificationRequiredFields/index.js.map +1 -0
  140. package/build/components/__shared__/Payment/Payment.js +1 -1
  141. package/build/components/__shared__/Payment/Payment.js.map +1 -1
  142. package/build/components/__shared__/Payment/__tests__/__snapshots__/Payment.test.js.snap +302 -8
  143. package/build/components/__shared__/Payment/components/Card/Card.js +4 -0
  144. package/build/components/__shared__/Payment/components/Card/Card.js.map +1 -1
  145. package/build/components/__shared__/Payment/components/Card/__tests__/__snapshots__/Card.test.js.snap +23 -0
  146. package/build/components/__shared__/Payment/components/Card/helpers/formatValues.js +2 -0
  147. package/build/components/__shared__/Payment/components/Card/helpers/formatValues.js.map +1 -1
  148. package/build/components/__shared__/Payment/components/PCI/PCI.constants.js +1 -2
  149. package/build/components/__shared__/Payment/components/PCI/PCI.constants.js.map +1 -1
  150. package/build/components/__shared__/Payment/components/PCI/PCI.js +59 -56
  151. package/build/components/__shared__/Payment/components/PCI/PCI.js.map +1 -1
  152. package/build/components/__shared__/Payment/components/PCI/__tests__/__snapshots__/PCI.test.js.snap +15 -0
  153. package/build/components/__shared__/Payment/components/PCI/helpers/formatValues.js +2 -0
  154. package/build/components/__shared__/Payment/components/PCI/helpers/formatValues.js.map +1 -1
  155. package/build/components/__shared__/Payment/helpers/formatExpire.js +15 -0
  156. package/build/components/__shared__/Payment/helpers/formatExpire.js.map +1 -0
  157. package/build/components/__shared__/Payment/helpers/index.js +11 -0
  158. package/build/components/__shared__/Payment/helpers/index.js.map +1 -1
  159. package/build/components/__shared__/index.js +22 -0
  160. package/build/components/__shared__/index.js.map +1 -1
  161. package/build/components/helpers/ICON.js +13 -0
  162. package/build/components/helpers/ICON.js.map +1 -1
  163. package/build/components/index.js +2 -0
  164. package/build/components/index.js.map +1 -1
  165. package/build/services/Lisa/action.js +28 -0
  166. package/build/services/Lisa/action.js.map +1 -0
  167. package/build/services/Lisa/index.js +17 -0
  168. package/build/services/Lisa/index.js.map +1 -0
  169. package/build/services/Lisa/message.js +26 -0
  170. package/build/services/Lisa/message.js.map +1 -0
  171. package/build/services/Lisa/status.js +13 -0
  172. package/build/services/Lisa/status.js.map +1 -0
  173. package/build/services/Lisa/welcome.js +25 -0
  174. package/build/services/Lisa/welcome.js.map +1 -0
  175. package/build/services/Rates/__tests__/__mocks__/rates-response-cancel-types.json +21 -0
  176. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +6 -0
  177. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +4 -0
  178. package/build/services/Rates/__tests__/__mocks__/rates-response.json +6 -0
  179. package/build/services/Rates/extras.js +1 -1
  180. package/build/services/Rates/extras.js.map +1 -1
  181. package/build/services/Rates/helpers/getItems.js +1 -1
  182. package/build/services/Rates/helpers/getItems.js.map +1 -1
  183. package/build/services/Rates/helpers/parseBoards.js +1 -0
  184. package/build/services/Rates/helpers/parseBoards.js.map +1 -1
  185. package/build/services/index.js +11 -0
  186. package/build/services/index.js.map +1 -1
  187. package/package.json +1 -1
  188. package/public/App.Container.jsx +2 -0
  189. package/build/components/Booking/partials/Booking.Others.js.map +0 -1
@@ -32,6 +32,7 @@ const Account = () => {
32
32
  const [countries, setCountries] = (0, _react.useState)({});
33
33
  const [form, setForm] = (0, _react.useState)(session);
34
34
  const [formError, setFormError] = (0, _react.useState)({});
35
+ const [requiredFields, setRequiredFields] = (0, _react.useState)();
35
36
  const [responseError, setResponseError] = (0, _react.useState)();
36
37
  const formatDate = (0, _locale.getDateFormat)(locale);
37
38
  (0, _react.useEffect)(() => {
@@ -54,7 +55,16 @@ const Account = () => {
54
55
  // eslint-disable-next-line react-hooks/exhaustive-deps
55
56
  }, [locale]);
56
57
  const handleSubmit = async form => {
58
+ const hasErrors = Object.keys(formError).length !== 0;
59
+ if (hasErrors) {
60
+ window.scrollTo({
61
+ top: 0,
62
+ behavior: 'smooth'
63
+ });
64
+ return setRequiredFields(formError);
65
+ }
57
66
  setBusy(true);
67
+ setRequiredFields();
58
68
  setResponseError(undefined);
59
69
  const parameters = {
60
70
  ...form,
@@ -83,17 +93,21 @@ const Account = () => {
83
93
  const countryCode = (0, _helpers.getCountryCode)(form.country, countries);
84
94
  const has = {
85
95
  changes: _Settings.ACCOUNT_FIELDS.some(key => form[key] !== session[key]) || countryCode !== session.country,
86
- dateOfBirth: (_form$dateOfBirth = form.dateOfBirth) === null || _form$dateOfBirth === void 0 ? void 0 : _form$dateOfBirth.length,
87
- errors: Object.keys(formError).length !== 0
96
+ dateOfBirth: (_form$dateOfBirth = form.dateOfBirth) === null || _form$dateOfBirth === void 0 ? void 0 : _form$dateOfBirth.length
88
97
  };
98
+ const hasRequiredFields = Object.keys(requiredFields || {}).length > 0;
89
99
  return /*#__PURE__*/_react.default.createElement(_ui.Form, {
90
100
  validateOnMount: true,
91
101
  onChange: setForm,
92
102
  onError: setFormError,
93
103
  onSubmit: handleSubmit
94
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
104
+ }, hasRequiredFields && /*#__PURE__*/_react.default.createElement(_shared__.NotificationRequiredFields, {
105
+ form: "account",
106
+ values: requiredFields
107
+ }), /*#__PURE__*/_react.default.createElement(_ui.Text, {
95
108
  wide: true
96
109
  }, translate(_Settings2.L10N.DESCRIPTION_ACCOUNT)), /*#__PURE__*/_react.default.createElement(_shared__.TextRequiredFields, null), /*#__PURE__*/_react.default.createElement(_ui.InputText, {
110
+ id: "account-firstName",
97
111
  name: "firstName",
98
112
  error: formError.firstName,
99
113
  label: translate(_Settings2.L10N.FIRSTNAME_LABEL),
@@ -102,6 +116,7 @@ const Account = () => {
102
116
  success: form.firstName !== session.firstName,
103
117
  value: form.firstName
104
118
  }), /*#__PURE__*/_react.default.createElement(_ui.InputText, {
119
+ id: "account-lastName",
105
120
  name: "lastName",
106
121
  error: formError.lastName,
107
122
  label: translate(_Settings2.L10N.LASTNAME_LABEL),
@@ -110,6 +125,7 @@ const Account = () => {
110
125
  success: form.lastName !== session.lastName,
111
126
  value: form.lastName
112
127
  }), /*#__PURE__*/_react.default.createElement(_ui.InputText, {
128
+ id: "account-email",
113
129
  name: "email",
114
130
  disabled: true,
115
131
  label: translate(_Settings2.L10N.EMAIL_LABEL),
@@ -118,6 +134,7 @@ const Account = () => {
118
134
  type: "email",
119
135
  value: form.email
120
136
  }), /*#__PURE__*/_react.default.createElement(_ui.InputDate, {
137
+ id: "account-dateOfBirth",
121
138
  name: "dateOfBirth",
122
139
  error: has.dateOfBirth && !!formError.dateOfBirth,
123
140
  hint: has.dateOfBirth && (_formError$dateOfBirt = formError.dateOfBirth) !== null && _formError$dateOfBirt !== void 0 && _formError$dateOfBirt.max ? translate(_Settings2.L10N.DATEOFBIRTH_ERROR) : undefined,
@@ -132,12 +149,14 @@ const Account = () => {
132
149
  type: "inputDate",
133
150
  value: form.dateOfBirth
134
151
  }), /*#__PURE__*/_react.default.createElement(_ui.InputSelect, {
152
+ id: "account-country",
135
153
  name: "country",
136
154
  label: translate(_Settings2.L10N.COUNTRY_LABEL),
137
155
  placeholder: translate(_Settings2.L10N.COUNTRY_PLACEHOLDER),
138
- options: Object.values(countries),
139
- required: true,
140
- showRequired: true,
156
+ options: Object.values(countries)
157
+ // required
158
+ // showRequired
159
+ ,
141
160
  success: countryCode !== session.country,
142
161
  value: form.country
143
162
  }), /*#__PURE__*/_react.default.createElement(_ui.InputOption, {
@@ -152,10 +171,9 @@ const Account = () => {
152
171
  className: style.notification
153
172
  }, translate(_Settings2.L10N.ERROR)), /*#__PURE__*/_react.default.createElement(_ui.Button, {
154
173
  busy: busy,
155
- disabled: busy || has.errors || !has.changes,
156
174
  large: true,
157
175
  wide: true,
158
- type: "submit"
176
+ onPress: handleSubmit
159
177
  }, translate(_Settings2.L10N.CTA_ACCOUNT)));
160
178
  };
161
179
  exports.Account = Account;
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.Account.js","names":["_dataSources","require","_locale","_services","_ui","_react","_interopRequireWildcard","_Settings","_Settings2","style","_shared__","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Account","_form$dateOfBirth","_formError$dateOfBirt","value","locale","session","useStore","translate","useLocale","busy","setBusy","useState","countries","setCountries","form","setForm","formError","setFormError","responseError","setResponseError","formatDate","getDateFormat","useEffect","profile","next","ServiceCountry","list","country","handleSubmit","undefined","parameters","getCountryCode","dateOfBirth","dateFormat","parseDate","format","response","ServiceUser","update","catch","error","Event","publish","EVENT","NOTIFICATION","success","L10N","SUCCESS_ACCOUNT","countryCode","changes","ACCOUNT_FIELDS","some","key","length","errors","keys","createElement","Form","validateOnMount","onChange","onError","onSubmit","Text","wide","DESCRIPTION_ACCOUNT","TextRequiredFields","InputText","name","firstName","label","FIRSTNAME_LABEL","required","showRequired","lastName","LASTNAME_LABEL","disabled","EMAIL_LABEL","type","email","InputDate","hint","max","DATEOFBIRTH_ERROR","DATEOFBIRTH_LABEL","dateCalc","Date","InputSelect","COUNTRY_LABEL","placeholder","COUNTRY_PLACEHOLDER","options","values","InputOption","checked","subscribed","SUBSCRIBED_LABEL","small","Notification","className","notification","ERROR","Button","large","CTA_ACCOUNT","exports","displayName","propTypes"],"sources":["../../../../../src/components/Profile/components/Settings/Settings.Account.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { dateCalc, dateFormat, getDateFormat, parseDate, useLocale } from '@mirai/locale';\nimport { ServiceCountry, ServiceUser } from '@mirai/services';\nimport { Button, Form, InputDate, InputOption, InputSelect, InputText, Notification, Text } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport { ACCOUNT_FIELDS } from './Settings.constants';\nimport { L10N } from './Settings.l10n';\nimport * as style from './Settings.module.css';\nimport { TextRequiredFields } from '../../../__shared__';\nimport { EVENT, getCountryCode } from '../../../helpers';\n\nconst Account = () => {\n const {\n set,\n value: { locale, session = {} },\n } = useStore();\n const { translate } = useLocale();\n\n const [busy, setBusy] = useState(false);\n const [countries, setCountries] = useState({});\n const [form, setForm] = useState(session);\n const [formError, setFormError] = useState({});\n const [responseError, setResponseError] = useState();\n\n const formatDate = getDateFormat(locale);\n\n useEffect(() => {\n setResponseError();\n set({ profile: form });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [form]);\n\n useEffect(() => {\n (async () => {\n const next = (await ServiceCountry.list(locale)) || {};\n\n setCountries(next);\n setForm({ ...form, country: next[session.country] });\n })();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const handleSubmit = async (form) => {\n setBusy(true);\n setResponseError(undefined);\n\n const parameters = {\n ...form,\n country: getCountryCode(form.country, countries),\n dateOfBirth: dateFormat(parseDate(form.dateOfBirth, formatDate), { format: 'DD/MM/YYYY' }),\n };\n\n const response = await ServiceUser.update(parameters).catch((error) => {\n setResponseError(error);\n });\n\n if (response) {\n Event.publish(EVENT.NOTIFICATION, { success: true, ...L10N.SUCCESS_ACCOUNT });\n set({ session: { ...session, ...parameters } });\n }\n setBusy(false);\n };\n\n const countryCode = getCountryCode(form.country, countries);\n const has = {\n changes: ACCOUNT_FIELDS.some((key) => form[key] !== session[key]) || countryCode !== session.country,\n dateOfBirth: form.dateOfBirth?.length,\n errors: Object.keys(formError).length !== 0,\n };\n\n return (\n <Form validateOnMount onChange={setForm} onError={setFormError} onSubmit={handleSubmit}>\n <Text wide>{translate(L10N.DESCRIPTION_ACCOUNT)}</Text>\n <TextRequiredFields />\n <InputText\n name=\"firstName\"\n error={formError.firstName}\n label={translate(L10N.FIRSTNAME_LABEL)}\n required\n showRequired\n success={form.firstName !== session.firstName}\n value={form.firstName}\n />\n <InputText\n name=\"lastName\"\n error={formError.lastName}\n label={translate(L10N.LASTNAME_LABEL)}\n required\n showRequired\n success={form.lastName !== session.lastName}\n value={form.lastName}\n />\n <InputText\n name=\"email\"\n disabled\n label={translate(L10N.EMAIL_LABEL)}\n required\n showRequired\n type=\"email\"\n value={form.email}\n />\n <InputDate\n name=\"dateOfBirth\"\n error={has.dateOfBirth && !!formError.dateOfBirth}\n hint={has.dateOfBirth && formError.dateOfBirth?.max ? translate(L10N.DATEOFBIRTH_ERROR) : undefined}\n format={formatDate}\n label={translate(L10N.DATEOFBIRTH_LABEL)}\n max={dateFormat(dateCalc(new Date(), -18, 'years'), { format: formatDate })}\n required\n showRequired\n success={form.dateOfBirth !== session.dateOfBirth}\n type=\"inputDate\"\n value={form.dateOfBirth}\n />\n <InputSelect\n name=\"country\"\n label={translate(L10N.COUNTRY_LABEL)}\n placeholder={translate(L10N.COUNTRY_PLACEHOLDER)}\n options={Object.values(countries)}\n required\n showRequired\n success={countryCode !== session.country}\n value={form.country}\n />\n <InputOption\n name=\"subscribed\"\n checked={form.subscribed}\n type=\"checkbox\"\n label={translate(L10N.SUBSCRIBED_LABEL)}\n small\n value={form.subscribed}\n />\n\n {responseError && (\n <Notification error className={style.notification}>\n {translate(L10N.ERROR)}\n </Notification>\n )}\n\n <Button busy={busy} disabled={busy || has.errors || !has.changes} large wide type=\"submit\">\n {translate(L10N.CTA_ACCOUNT)}\n </Button>\n </Form>\n );\n};\n\nAccount.displayName = 'Mirai:Core:Profile:Account';\n\nAccount.propTypes = {};\n\nexport { Account };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Settings.Account.js","names":["_dataSources","require","_locale","_services","_ui","_react","_interopRequireWildcard","_Settings","_Settings2","style","_shared__","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Account","_form$dateOfBirth","_formError$dateOfBirt","value","locale","session","useStore","translate","useLocale","busy","setBusy","useState","countries","setCountries","form","setForm","formError","setFormError","requiredFields","setRequiredFields","responseError","setResponseError","formatDate","getDateFormat","useEffect","profile","next","ServiceCountry","list","country","handleSubmit","hasErrors","keys","length","window","scrollTo","top","behavior","undefined","parameters","getCountryCode","dateOfBirth","dateFormat","parseDate","format","response","ServiceUser","update","catch","error","Event","publish","EVENT","NOTIFICATION","success","L10N","SUCCESS_ACCOUNT","countryCode","changes","ACCOUNT_FIELDS","some","key","hasRequiredFields","createElement","Form","validateOnMount","onChange","onError","onSubmit","NotificationRequiredFields","values","Text","wide","DESCRIPTION_ACCOUNT","TextRequiredFields","InputText","id","name","firstName","label","FIRSTNAME_LABEL","required","showRequired","lastName","LASTNAME_LABEL","disabled","EMAIL_LABEL","type","email","InputDate","hint","max","DATEOFBIRTH_ERROR","DATEOFBIRTH_LABEL","dateCalc","Date","InputSelect","COUNTRY_LABEL","placeholder","COUNTRY_PLACEHOLDER","options","InputOption","checked","subscribed","SUBSCRIBED_LABEL","small","Notification","className","notification","ERROR","Button","large","onPress","CTA_ACCOUNT","exports","displayName","propTypes"],"sources":["../../../../../src/components/Profile/components/Settings/Settings.Account.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { dateCalc, dateFormat, getDateFormat, parseDate, useLocale } from '@mirai/locale';\nimport { ServiceCountry, ServiceUser } from '@mirai/services';\nimport { Button, Form, InputDate, InputOption, InputSelect, InputText, Notification, Text } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport { ACCOUNT_FIELDS } from './Settings.constants';\nimport { L10N } from './Settings.l10n';\nimport * as style from './Settings.module.css';\nimport { NotificationRequiredFields, TextRequiredFields } from '../../../__shared__';\nimport { EVENT, getCountryCode } from '../../../helpers';\n\nconst Account = () => {\n const {\n set,\n value: { locale, session = {} },\n } = useStore();\n const { translate } = useLocale();\n\n const [busy, setBusy] = useState(false);\n const [countries, setCountries] = useState({});\n const [form, setForm] = useState(session);\n const [formError, setFormError] = useState({});\n const [requiredFields, setRequiredFields] = useState();\n const [responseError, setResponseError] = useState();\n\n const formatDate = getDateFormat(locale);\n\n useEffect(() => {\n setResponseError();\n set({ profile: form });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [form]);\n\n useEffect(() => {\n (async () => {\n const next = (await ServiceCountry.list(locale)) || {};\n\n setCountries(next);\n setForm({ ...form, country: next[session.country] });\n })();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const handleSubmit = async (form) => {\n const hasErrors = Object.keys(formError).length !== 0;\n if (hasErrors) {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n return setRequiredFields(formError);\n }\n\n setBusy(true);\n setRequiredFields();\n setResponseError(undefined);\n\n const parameters = {\n ...form,\n country: getCountryCode(form.country, countries),\n dateOfBirth: dateFormat(parseDate(form.dateOfBirth, formatDate), { format: 'DD/MM/YYYY' }),\n };\n\n const response = await ServiceUser.update(parameters).catch((error) => {\n setResponseError(error);\n });\n\n if (response) {\n Event.publish(EVENT.NOTIFICATION, { success: true, ...L10N.SUCCESS_ACCOUNT });\n set({ session: { ...session, ...parameters } });\n }\n setBusy(false);\n };\n\n const countryCode = getCountryCode(form.country, countries);\n const has = {\n changes: ACCOUNT_FIELDS.some((key) => form[key] !== session[key]) || countryCode !== session.country,\n dateOfBirth: form.dateOfBirth?.length,\n };\n const hasRequiredFields = Object.keys(requiredFields || {}).length > 0;\n\n return (\n <Form validateOnMount onChange={setForm} onError={setFormError} onSubmit={handleSubmit}>\n {hasRequiredFields && <NotificationRequiredFields form=\"account\" values={requiredFields} />}\n\n <Text wide>{translate(L10N.DESCRIPTION_ACCOUNT)}</Text>\n <TextRequiredFields />\n <InputText\n id=\"account-firstName\"\n name=\"firstName\"\n error={formError.firstName}\n label={translate(L10N.FIRSTNAME_LABEL)}\n required\n showRequired\n success={form.firstName !== session.firstName}\n value={form.firstName}\n />\n <InputText\n id=\"account-lastName\"\n name=\"lastName\"\n error={formError.lastName}\n label={translate(L10N.LASTNAME_LABEL)}\n required\n showRequired\n success={form.lastName !== session.lastName}\n value={form.lastName}\n />\n <InputText\n id=\"account-email\"\n name=\"email\"\n disabled\n label={translate(L10N.EMAIL_LABEL)}\n required\n showRequired\n type=\"email\"\n value={form.email}\n />\n <InputDate\n id=\"account-dateOfBirth\"\n name=\"dateOfBirth\"\n error={has.dateOfBirth && !!formError.dateOfBirth}\n hint={has.dateOfBirth && formError.dateOfBirth?.max ? translate(L10N.DATEOFBIRTH_ERROR) : undefined}\n format={formatDate}\n label={translate(L10N.DATEOFBIRTH_LABEL)}\n max={dateFormat(dateCalc(new Date(), -18, 'years'), { format: formatDate })}\n required\n showRequired\n success={form.dateOfBirth !== session.dateOfBirth}\n type=\"inputDate\"\n value={form.dateOfBirth}\n />\n <InputSelect\n id=\"account-country\"\n name=\"country\"\n label={translate(L10N.COUNTRY_LABEL)}\n placeholder={translate(L10N.COUNTRY_PLACEHOLDER)}\n options={Object.values(countries)}\n // required\n // showRequired\n success={countryCode !== session.country}\n value={form.country}\n />\n <InputOption\n name=\"subscribed\"\n checked={form.subscribed}\n type=\"checkbox\"\n label={translate(L10N.SUBSCRIBED_LABEL)}\n small\n value={form.subscribed}\n />\n\n {responseError && (\n <Notification error className={style.notification}>\n {translate(L10N.ERROR)}\n </Notification>\n )}\n\n <Button busy={busy} large wide onPress={handleSubmit}>\n {translate(L10N.CTA_ACCOUNT)}\n </Button>\n </Form>\n );\n};\n\nAccount.displayName = 'Mirai:Core:Profile:Account';\n\nAccount.propTypes = {};\n\nexport { Account };\n"],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ html {
2
+ scroll-behavior: smooth;
3
+ }
4
+
1
5
  .settings {
2
6
  align-items: flex-start;
3
7
  gap: var(--mirai-ui-space-L);
@@ -19,6 +19,7 @@ const FEATURES = exports.FEATURES = {
19
19
  SHOW_ALL_BOARDS: 'showAllBoards',
20
20
  SHOW_ALL_OFFERS: 'showAllOffers',
21
21
  SHOW_CLUB_DISCOUNT: 'showClubDiscount',
22
+ SHOW_SELECTED_OCCUPATION: 'showSelectedOccupation',
22
23
  SHOW_OFFERS_FIRST: 'showOffersFirst',
23
24
  SHOW_RATE_INCLUDED: 'showRateIncluded'
24
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Rates.constants.js","names":["DATE_FORMAT","exports","weekday","month","day","DISCOUNT_TYPE","CLUB","DEAL","PROMOTION","FEATURES","PESTANA","SHOW_ALL_BOARDS","SHOW_ALL_OFFERS","SHOW_CLUB_DISCOUNT","SHOW_OFFERS_FIRST","SHOW_RATE_INCLUDED"],"sources":["../../../src/components/Rates/Rates.constants.js"],"sourcesContent":["const DATE_FORMAT = { weekday: 'short', month: 'short', day: 'numeric' };\n\nconst DISCOUNT_TYPE = {\n CLUB: 0,\n DEAL: 1,\n PROMOTION: 2,\n};\n\nconst FEATURES = {\n PESTANA: 'pestana',\n SHOW_ALL_BOARDS: 'showAllBoards',\n SHOW_ALL_OFFERS: 'showAllOffers',\n SHOW_CLUB_DISCOUNT: 'showClubDiscount',\n SHOW_OFFERS_FIRST: 'showOffersFirst',\n SHOW_RATE_INCLUDED: 'showRateIncluded',\n};\n\nexport { DATE_FORMAT, DISCOUNT_TYPE, FEATURES };\n"],"mappings":";;;;;;AAAA,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EAAEE,OAAO,EAAE,OAAO;EAAEC,KAAK,EAAE,OAAO;EAAEC,GAAG,EAAE;AAAU,CAAC;AAExE,MAAMC,aAAa,GAAAJ,OAAA,CAAAI,aAAA,GAAG;EACpBC,IAAI,EAAE,CAAC;EACPC,IAAI,EAAE,CAAC;EACPC,SAAS,EAAE;AACb,CAAC;AAED,MAAMC,QAAQ,GAAAR,OAAA,CAAAQ,QAAA,GAAG;EACfC,OAAO,EAAE,SAAS;EAClBC,eAAe,EAAE,eAAe;EAChCC,eAAe,EAAE,eAAe;EAChCC,kBAAkB,EAAE,kBAAkB;EACtCC,iBAAiB,EAAE,iBAAiB;EACpCC,kBAAkB,EAAE;AACtB,CAAC"}
1
+ {"version":3,"file":"Rates.constants.js","names":["DATE_FORMAT","exports","weekday","month","day","DISCOUNT_TYPE","CLUB","DEAL","PROMOTION","FEATURES","PESTANA","SHOW_ALL_BOARDS","SHOW_ALL_OFFERS","SHOW_CLUB_DISCOUNT","SHOW_SELECTED_OCCUPATION","SHOW_OFFERS_FIRST","SHOW_RATE_INCLUDED"],"sources":["../../../src/components/Rates/Rates.constants.js"],"sourcesContent":["const DATE_FORMAT = { weekday: 'short', month: 'short', day: 'numeric' };\n\nconst DISCOUNT_TYPE = {\n CLUB: 0,\n DEAL: 1,\n PROMOTION: 2,\n};\n\nconst FEATURES = {\n PESTANA: 'pestana',\n SHOW_ALL_BOARDS: 'showAllBoards',\n SHOW_ALL_OFFERS: 'showAllOffers',\n SHOW_CLUB_DISCOUNT: 'showClubDiscount',\n SHOW_SELECTED_OCCUPATION: 'showSelectedOccupation',\n SHOW_OFFERS_FIRST: 'showOffersFirst',\n SHOW_RATE_INCLUDED: 'showRateIncluded',\n};\n\nexport { DATE_FORMAT, DISCOUNT_TYPE, FEATURES };\n"],"mappings":";;;;;;AAAA,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EAAEE,OAAO,EAAE,OAAO;EAAEC,KAAK,EAAE,OAAO;EAAEC,GAAG,EAAE;AAAU,CAAC;AAExE,MAAMC,aAAa,GAAAJ,OAAA,CAAAI,aAAA,GAAG;EACpBC,IAAI,EAAE,CAAC;EACPC,IAAI,EAAE,CAAC;EACPC,SAAS,EAAE;AACb,CAAC;AAED,MAAMC,QAAQ,GAAAR,OAAA,CAAAQ,QAAA,GAAG;EACfC,OAAO,EAAE,SAAS;EAClBC,eAAe,EAAE,eAAe;EAChCC,eAAe,EAAE,eAAe;EAChCC,kBAAkB,EAAE,kBAAkB;EACtCC,wBAAwB,EAAE,wBAAwB;EAClDC,iBAAiB,EAAE,iBAAiB;EACpCC,kBAAkB,EAAE;AACtB,CAAC"}
@@ -339,6 +339,7 @@ const Rates = _ref => {
339
339
  features,
340
340
  multiRoom,
341
341
  nights,
342
+ room,
342
343
  taxesType: dataSource.taxesType,
343
344
  cart: cart[room || 0],
344
345
  onMoreInfo: () => setItemInfo(item),
@@ -363,6 +364,7 @@ const Rates = _ref => {
363
364
  occupation,
364
365
  onSubmit: () => handleSubmit(cart)
365
366
  })), response && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.ModalItemInfo, _extends({}, itemInfo, {
367
+ features: features,
366
368
  visible: !!itemInfo,
367
369
  onClose: () => setItemInfo(),
368
370
  onViewUrl: info => setItemUrl(info)
@@ -1 +1 @@
1
- {"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","_Rates4","_Rates5","style","_Rates6","_Rates7","_Rates8","_services2","_Finder","_helpers2","_SessionLogin","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","loginShown","Rates","_ref","_dataSource$items","_dataSource$hotels","_dataSource$items2","skeleton","others","isMobile","width","useDevice","translate","useLocale","refRoomSelector","useRef","value","club","discount","currency","finder","forwarder","hotel","id","language","locale","rates","cart","storeCart","session","urlParams","useStore","calendar","occupation","place","setCart","useState","clubDiscount","setClubDiscount","dataSource","setDataSource","extras","setExtras","fetching","setFetching","undefined","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","itemUrl","setItemUrl","login","setLogin","responseError","setResponseError","room","setRoom","useEffect","callback","fetch","Event","subscribe","EVENT","INTENT_CURRENCY","unsubscribe","boards","items","map","_ref2","name","roomName","board","flat","nextCart","find","filter","console","log","replaceHistory","multiRoom","current","offsetHeight","offsetTop","document","documentElement","scrollTo","top","behavior","getNextUrlParams","trackDataSource","nextClubDiscount","params","publish","FINDER","nextParams","parties","parseToParties","nextDataSource","ServiceRates","catch","externalSignout","signout","JSON","stringify","history","replaceState","toUrlParams","lang","getFinderParams","handleFinder","values","handleClubDiscount","next","handleSelect","handleSubmit","isPestana","ServiceFeatures","FEATURES","PESTANA","getCheckoutParams","hotelCurrency","selectableExtras","some","included","handleCheckout","location","href","getForwarderUrl","contentBackground","Theme","features","getFeatures","nights","dateDiff","days","response","roomSelectorProps","onPress","createElement","Fragment","View","ref","className","styles","blur","sticky","backgroundColor","opacity","Finder","assisted","compacted","text","L10N","ACTION_SEARCH","onSubmit","Progress","indeterminate","visible","progress","RoomSelector","role","testId","container","wrapper","content","Content","Header","onClubDiscount","onSelect","row","_ref3","index","item","Item","concat","taxesType","onMoreInfo","onRateInfo","rate","onViewUrl","info","hotels","CardHotel","Unavailability","Footer","ModalItemInfo","onClose","ModalItemRateInfo","ModalItemUrl","ModalExtras","onCancel","active","Modal","showSignup","title","LABEL_FARE_EXCLUSIVE_MEMBERS","onSuccess","ClubRate","exports","displayName","propTypes","PropTypes","bool"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { dateDiff, useLocale } from '@mirai/locale';\nimport { ServiceFeatures } from '@mirai/services';\nimport { Progress, styles, Theme, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { CardHotel, ClubRate, Item, ModalExtras, ModalItemInfo, ModalItemRateInfo, ModalItemUrl } from './components';\nimport { getCheckoutParams, getFeatures, getFinderParams, getForwarderUrl, signout, trackDataSource } from './helpers';\nimport { FEATURES } from './Rates.constants';\nimport { Content } from './Rates.Content';\nimport { Footer } from './Rates.Footer';\nimport { Header } from './Rates.Header';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { RoomSelector } from './Rates.RoomSelector';\nimport Skeleton from './Rates.Skeleton';\nimport { Unavailability } from './Rates.Unavailability';\nimport { ServiceRates } from '../../services';\nimport { Finder } from '../Finder';\nimport { EVENT, opacity, parseToParties, toUrlParams } from '../helpers';\nimport { Modal as ModalLogin } from '../Session/Session.Login.Modal';\n\nlet loginShown = false;\n\nconst Rates = ({ skeleton, ...others }) => {\n const { isMobile, width } = useDevice();\n const { translate } = useLocale();\n const refRoomSelector = useRef();\n const {\n set,\n value: {\n club: { discount, ...club } = {},\n currency,\n finder = {},\n forwarder,\n hotel = {},\n id,\n language,\n locale,\n rates: { cart: storeCart = [] } = {},\n session,\n urlParams,\n },\n } = useStore();\n\n const { calendar = [], occupation = [], place = {} } = finder;\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(discount);\n const [dataSource, setDataSource] = useState();\n const [extras, setExtras] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [itemInfo, setItemInfo] = useState();\n const [itemRateInfo, setItemRateInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [login, setLogin] = useState(false);\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n\n useEffect(() => {\n const callback = async ({ currency } = {}) => {\n set({ currency });\n // ! TODO: Here locale is not correct\n await fetch(currency, clubDiscount, undefined, room);\n };\n\n Event.subscribe(EVENT.INTENT_CURRENCY, callback);\n return () => Event.unsubscribe(EVENT.INTENT_CURRENCY, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n useEffect(() => {\n if (!storeCart.length || !dataSource || cart.length) return;\n\n const boards = dataSource.items\n .map(({ boards = [], name: roomName }) => boards.map((board) => ({ ...board, roomName })))\n .flat();\n const nextCart = storeCart.map((id) => boards.find((board) => board.id === id)).filter((board) => !!board);\n\n // eslint-disable-next-line no-console\n console.log('::cart from url::', nextCart);\n\n // if (storeCart.length === nextCart.length) setCart(nextCart);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cart, dataSource, storeCart]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => currency && locale && replaceHistory(), [currency, locale]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n document.documentElement.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n fetch(currency, undefined, getNextUrlParams(), room);\n replaceHistory();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [finder, locale, room, session]);\n\n useEffect(() => {\n if (!dataSource || room) return;\n\n trackDataSource({ ...dataSource, ...urlParams, isMobile, occupation, place });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n const fetch = async (currency, nextClubDiscount = clubDiscount, params = urlParams, room) => {\n if (skeleton || (!multiRoom && room !== undefined)) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\n const nextParams = {\n ...params,\n club,\n clubDiscount: nextClubDiscount,\n currency,\n id,\n locale,\n occupation,\n place,\n session,\n };\n if (room !== undefined) nextParams.parties = parseToParties([occupation[room]]);\n\n const nextDataSource = await ServiceRates.get(nextParams).catch(setResponseError);\n if (nextDataSource?.externalSignout) signout({ club, language });\n else setDataSource(nextDataSource);\n\n if (nextDataSource && multiRoom && room === undefined) setRoom(0);\n\n setFetching(false);\n };\n\n const replaceHistory = (nextParams = getNextUrlParams() || {}, nextCart = cart || []) => {\n if (nextCart.length) nextParams.rates = JSON.stringify(nextCart.map(({ id } = {}) => id));\n else if (nextParams.rates) nextParams.rates = undefined;\n\n history.replaceState({}, '', toUrlParams({ ...nextParams, currency, lang: language, locale }));\n };\n\n const getNextUrlParams = () => getFinderParams({ ...urlParams, ...finder, currency, locale, hotel });\n\n const handleFinder = (values) => {\n setCart([]);\n setDataSource(undefined);\n setRoom(undefined);\n\n const params = getFinderParams({ ...urlParams, ...values, currency, locale, hotel });\n replaceHistory(params);\n };\n\n const handleClubDiscount = async (next) => {\n setCart([]);\n setClubDiscount(next);\n login && setLogin(false);\n\n await fetch(currency, next, undefined, room);\n };\n\n const handleSelect = (board, others) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board ? { ...board, ...others } : undefined;\n\n setCart(nextCart);\n setExtras();\n login && setLogin(false);\n\n if (!multiRoom && !!board) handleSubmit(nextCart);\n if (multiRoom && board && room < occupation.length - 1) return setRoom(room + 1);\n if (!board) replaceHistory(undefined, nextCart);\n };\n\n // eslint-disable-next-line no-unused-vars\n const handleSubmit = async (cart) => {\n const isPestana = ServiceFeatures.get(FEATURES.PESTANA, id) || false;\n setLogin(false);\n\n if (!isPestana && clubDiscount && !session && !loginShown) {\n loginShown = true;\n return setLogin(true);\n }\n\n replaceHistory(undefined, cart);\n\n const { extras = [] } = await ServiceRates.extras({\n ...getCheckoutParams({ cart, clubDiscount, currency, forwarder, urlParams: getNextUrlParams() }),\n hotelCurrency: dataSource.currency,\n locale,\n }).catch(() => {});\n const selectableExtras = extras.some(({ included } = {}) => !included);\n\n if (selectableExtras) setExtras(extras);\n else handleCheckout(cart, extras);\n };\n\n const handleCheckout = (cart = [], extras = []) => {\n const urlParams = getNextUrlParams();\n document.location.href = getForwarderUrl({ cart, clubDiscount, currency, extras, forwarder, session, urlParams });\n };\n\n const { contentBackground } = Theme.get();\n const features = getFeatures(id, urlParams);\n const multiRoom = occupation?.length > 1;\n const nights = dateDiff(calendar[0], calendar[1]).days;\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n\n return (\n <>\n <View\n ref={refRoomSelector}\n className={styles(style.finder, style.blur, (!multiRoom || responseError) && style.sticky)}\n style={!isMobile ? { backgroundColor: opacity(contentBackground, 0.66) } : undefined}\n >\n <Finder assisted={!isMobile} compacted text={translate(L10N.ACTION_SEARCH)} onSubmit={handleFinder} />\n </View>\n\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n {isMobile && !responseError && <RoomSelector {...roomSelectorProps} />}\n\n <View role=\"rates\" testId={others.testId} className={styles(style.container, others.className)}>\n <View className={[style.wrapper, style.content]}>\n {response && !responseError && <Content {...dataSource} {...others} />}\n\n {(response || (multiRoom && !responseError)) && (\n <Header\n {...{\n clubDiscount,\n dataSource,\n features,\n multiRoom,\n onClubDiscount: handleClubDiscount,\n onSelect: handleSelect,\n }}\n >\n {!isMobile && <RoomSelector {...roomSelectorProps} />}\n </Header>\n )}\n\n {response ? (\n <View row={!isMobile} className={style.items}>\n {dataSource.items?.map(({ id, ...item }, index) => (\n <Item\n key={`${id || index}:${fetching}:${width}`}\n {...{ id, ...item, features, multiRoom, nights, taxesType: dataSource.taxesType }}\n cart={cart[room || 0]}\n onMoreInfo={() => setItemInfo(item)}\n onRateInfo={(rate) => setItemRateInfo({ ...rate, name: item.name })}\n onSelect={handleSelect}\n onViewUrl={(info) => setItemUrl(info)}\n />\n ))}\n\n {dataSource.hotels?.map((item = {}) => (\n <CardHotel key={item.id} {...item} />\n ))}\n </View>\n ) : responseError ? (\n <Unavailability {...responseError} />\n ) : (\n <Skeleton multiRoom={multiRoom} />\n )}\n </View>\n\n {multiRoom && <Footer {...{ cart, dataSource, extras, occupation }} onSubmit={() => handleSubmit(cart)} />}\n </View>\n\n {response && (\n <>\n <ModalItemInfo\n {...itemInfo}\n visible={!!itemInfo}\n onClose={() => setItemInfo()}\n onViewUrl={(info) => setItemUrl(info)}\n />\n <ModalItemRateInfo {...itemRateInfo} visible={!!itemRateInfo} onClose={() => setItemRateInfo()} />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n <ModalExtras\n {...{ ...dataSource, cart, extras }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n />\n {club.active && dataSource.items?.length > 0 && (\n <ModalLogin\n showSignup={false}\n title={translate(L10N.LABEL_FARE_EXCLUSIVE_MEMBERS)}\n visible={login}\n onClose={() => handleSelect()}\n onSuccess={() => handleSubmit(cart)}\n >\n <ClubRate onCancel={() => handleClubDiscount(false)} onSubmit={() => handleSubmit(cart)} />\n </ModalLogin>\n )}\n </>\n )}\n </>\n );\n};\n\nRates.displayName = 'Mirai:Core:Rates';\n\nRates.propTypes = {\n skeleton: PropTypes.bool,\n};\n\nexport { Rates };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","_Rates4","_Rates5","style","_Rates6","_Rates7","_Rates8","_services2","_Finder","_helpers2","_SessionLogin","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","loginShown","Rates","_ref","_dataSource$items","_dataSource$hotels","_dataSource$items2","skeleton","others","isMobile","width","useDevice","translate","useLocale","refRoomSelector","useRef","value","club","discount","currency","finder","forwarder","hotel","id","language","locale","rates","cart","storeCart","session","urlParams","useStore","calendar","occupation","place","setCart","useState","clubDiscount","setClubDiscount","dataSource","setDataSource","extras","setExtras","fetching","setFetching","undefined","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","itemUrl","setItemUrl","login","setLogin","responseError","setResponseError","room","setRoom","useEffect","callback","fetch","Event","subscribe","EVENT","INTENT_CURRENCY","unsubscribe","boards","items","map","_ref2","name","roomName","board","flat","nextCart","find","filter","console","log","replaceHistory","multiRoom","current","offsetHeight","offsetTop","document","documentElement","scrollTo","top","behavior","getNextUrlParams","trackDataSource","nextClubDiscount","params","publish","FINDER","nextParams","parties","parseToParties","nextDataSource","ServiceRates","catch","externalSignout","signout","JSON","stringify","history","replaceState","toUrlParams","lang","getFinderParams","handleFinder","values","handleClubDiscount","next","handleSelect","handleSubmit","isPestana","ServiceFeatures","FEATURES","PESTANA","getCheckoutParams","hotelCurrency","selectableExtras","some","included","handleCheckout","location","href","getForwarderUrl","contentBackground","Theme","features","getFeatures","nights","dateDiff","days","response","roomSelectorProps","onPress","createElement","Fragment","View","ref","className","styles","blur","sticky","backgroundColor","opacity","Finder","assisted","compacted","text","L10N","ACTION_SEARCH","onSubmit","Progress","indeterminate","visible","progress","RoomSelector","role","testId","container","wrapper","content","Content","Header","onClubDiscount","onSelect","row","_ref3","index","item","Item","concat","taxesType","onMoreInfo","onRateInfo","rate","onViewUrl","info","hotels","CardHotel","Unavailability","Footer","ModalItemInfo","onClose","ModalItemRateInfo","ModalItemUrl","ModalExtras","onCancel","active","Modal","showSignup","title","LABEL_FARE_EXCLUSIVE_MEMBERS","onSuccess","ClubRate","exports","displayName","propTypes","PropTypes","bool"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { dateDiff, useLocale } from '@mirai/locale';\nimport { ServiceFeatures } from '@mirai/services';\nimport { Progress, styles, Theme, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { CardHotel, ClubRate, Item, ModalExtras, ModalItemInfo, ModalItemRateInfo, ModalItemUrl } from './components';\nimport { getCheckoutParams, getFeatures, getFinderParams, getForwarderUrl, signout, trackDataSource } from './helpers';\nimport { FEATURES } from './Rates.constants';\nimport { Content } from './Rates.Content';\nimport { Footer } from './Rates.Footer';\nimport { Header } from './Rates.Header';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { RoomSelector } from './Rates.RoomSelector';\nimport Skeleton from './Rates.Skeleton';\nimport { Unavailability } from './Rates.Unavailability';\nimport { ServiceRates } from '../../services';\nimport { Finder } from '../Finder';\nimport { EVENT, opacity, parseToParties, toUrlParams } from '../helpers';\nimport { Modal as ModalLogin } from '../Session/Session.Login.Modal';\n\nlet loginShown = false;\n\nconst Rates = ({ skeleton, ...others }) => {\n const { isMobile, width } = useDevice();\n const { translate } = useLocale();\n const refRoomSelector = useRef();\n const {\n set,\n value: {\n club: { discount, ...club } = {},\n currency,\n finder = {},\n forwarder,\n hotel = {},\n id,\n language,\n locale,\n rates: { cart: storeCart = [] } = {},\n session,\n urlParams,\n },\n } = useStore();\n\n const { calendar = [], occupation = [], place = {} } = finder;\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(discount);\n const [dataSource, setDataSource] = useState();\n const [extras, setExtras] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [itemInfo, setItemInfo] = useState();\n const [itemRateInfo, setItemRateInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [login, setLogin] = useState(false);\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n\n useEffect(() => {\n const callback = async ({ currency } = {}) => {\n set({ currency });\n // ! TODO: Here locale is not correct\n await fetch(currency, clubDiscount, undefined, room);\n };\n\n Event.subscribe(EVENT.INTENT_CURRENCY, callback);\n return () => Event.unsubscribe(EVENT.INTENT_CURRENCY, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n useEffect(() => {\n if (!storeCart.length || !dataSource || cart.length) return;\n\n const boards = dataSource.items\n .map(({ boards = [], name: roomName }) => boards.map((board) => ({ ...board, roomName })))\n .flat();\n const nextCart = storeCart.map((id) => boards.find((board) => board.id === id)).filter((board) => !!board);\n\n // eslint-disable-next-line no-console\n console.log('::cart from url::', nextCart);\n\n // if (storeCart.length === nextCart.length) setCart(nextCart);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cart, dataSource, storeCart]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => currency && locale && replaceHistory(), [currency, locale]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n document.documentElement.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n fetch(currency, undefined, getNextUrlParams(), room);\n replaceHistory();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [finder, locale, room, session]);\n\n useEffect(() => {\n if (!dataSource || room) return;\n\n trackDataSource({ ...dataSource, ...urlParams, isMobile, occupation, place });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n const fetch = async (currency, nextClubDiscount = clubDiscount, params = urlParams, room) => {\n if (skeleton || (!multiRoom && room !== undefined)) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\n const nextParams = {\n ...params,\n club,\n clubDiscount: nextClubDiscount,\n currency,\n id,\n locale,\n occupation,\n place,\n session,\n };\n if (room !== undefined) nextParams.parties = parseToParties([occupation[room]]);\n\n const nextDataSource = await ServiceRates.get(nextParams).catch(setResponseError);\n if (nextDataSource?.externalSignout) signout({ club, language });\n else setDataSource(nextDataSource);\n\n if (nextDataSource && multiRoom && room === undefined) setRoom(0);\n\n setFetching(false);\n };\n\n const replaceHistory = (nextParams = getNextUrlParams() || {}, nextCart = cart || []) => {\n if (nextCart.length) nextParams.rates = JSON.stringify(nextCart.map(({ id } = {}) => id));\n else if (nextParams.rates) nextParams.rates = undefined;\n\n history.replaceState({}, '', toUrlParams({ ...nextParams, currency, lang: language, locale }));\n };\n\n const getNextUrlParams = () => getFinderParams({ ...urlParams, ...finder, currency, locale, hotel });\n\n const handleFinder = (values) => {\n setCart([]);\n setDataSource(undefined);\n setRoom(undefined);\n\n const params = getFinderParams({ ...urlParams, ...values, currency, locale, hotel });\n replaceHistory(params);\n };\n\n const handleClubDiscount = async (next) => {\n setCart([]);\n setClubDiscount(next);\n login && setLogin(false);\n\n await fetch(currency, next, undefined, room);\n };\n\n const handleSelect = (board, others) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board ? { ...board, ...others } : undefined;\n\n setCart(nextCart);\n setExtras();\n login && setLogin(false);\n\n if (!multiRoom && !!board) handleSubmit(nextCart);\n if (multiRoom && board && room < occupation.length - 1) return setRoom(room + 1);\n if (!board) replaceHistory(undefined, nextCart);\n };\n\n // eslint-disable-next-line no-unused-vars\n const handleSubmit = async (cart) => {\n const isPestana = ServiceFeatures.get(FEATURES.PESTANA, id) || false;\n setLogin(false);\n\n if (!isPestana && clubDiscount && !session && !loginShown) {\n loginShown = true;\n return setLogin(true);\n }\n\n replaceHistory(undefined, cart);\n\n const { extras = [] } = await ServiceRates.extras({\n ...getCheckoutParams({ cart, clubDiscount, currency, forwarder, urlParams: getNextUrlParams() }),\n hotelCurrency: dataSource.currency,\n locale,\n }).catch(() => {});\n const selectableExtras = extras.some(({ included } = {}) => !included);\n\n if (selectableExtras) setExtras(extras);\n else handleCheckout(cart, extras);\n };\n\n const handleCheckout = (cart = [], extras = []) => {\n const urlParams = getNextUrlParams();\n document.location.href = getForwarderUrl({ cart, clubDiscount, currency, extras, forwarder, session, urlParams });\n };\n\n const { contentBackground } = Theme.get();\n const features = getFeatures(id, urlParams);\n const multiRoom = occupation?.length > 1;\n const nights = dateDiff(calendar[0], calendar[1]).days;\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n\n return (\n <>\n <View\n ref={refRoomSelector}\n className={styles(style.finder, style.blur, (!multiRoom || responseError) && style.sticky)}\n style={!isMobile ? { backgroundColor: opacity(contentBackground, 0.66) } : undefined}\n >\n <Finder assisted={!isMobile} compacted text={translate(L10N.ACTION_SEARCH)} onSubmit={handleFinder} />\n </View>\n\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n {isMobile && !responseError && <RoomSelector {...roomSelectorProps} />}\n\n <View role=\"rates\" testId={others.testId} className={styles(style.container, others.className)}>\n <View className={[style.wrapper, style.content]}>\n {response && !responseError && <Content {...dataSource} {...others} />}\n\n {(response || (multiRoom && !responseError)) && (\n <Header\n {...{\n clubDiscount,\n dataSource,\n features,\n multiRoom,\n onClubDiscount: handleClubDiscount,\n onSelect: handleSelect,\n }}\n >\n {!isMobile && <RoomSelector {...roomSelectorProps} />}\n </Header>\n )}\n\n {response ? (\n <View row={!isMobile} className={style.items}>\n {dataSource.items?.map(({ id, ...item }, index) => (\n <Item\n key={`${id || index}:${fetching}:${width}`}\n {...{ id, ...item, features, multiRoom, nights, room, taxesType: dataSource.taxesType }}\n cart={cart[room || 0]}\n onMoreInfo={() => setItemInfo(item)}\n onRateInfo={(rate) => setItemRateInfo({ ...rate, name: item.name })}\n onSelect={handleSelect}\n onViewUrl={(info) => setItemUrl(info)}\n />\n ))}\n\n {dataSource.hotels?.map((item = {}) => (\n <CardHotel key={item.id} {...item} />\n ))}\n </View>\n ) : responseError ? (\n <Unavailability {...responseError} />\n ) : (\n <Skeleton multiRoom={multiRoom} />\n )}\n </View>\n\n {multiRoom && <Footer {...{ cart, dataSource, extras, occupation }} onSubmit={() => handleSubmit(cart)} />}\n </View>\n\n {response && (\n <>\n <ModalItemInfo\n {...itemInfo}\n features={features}\n visible={!!itemInfo}\n onClose={() => setItemInfo()}\n onViewUrl={(info) => setItemUrl(info)}\n />\n <ModalItemRateInfo {...itemRateInfo} visible={!!itemRateInfo} onClose={() => setItemRateInfo()} />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n <ModalExtras\n {...{ ...dataSource, cart, extras }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n />\n {club.active && dataSource.items?.length > 0 && (\n <ModalLogin\n showSignup={false}\n title={translate(L10N.LABEL_FARE_EXCLUSIVE_MEMBERS)}\n visible={login}\n onClose={() => handleSelect()}\n onSuccess={() => handleSubmit(cart)}\n >\n <ClubRate onCancel={() => handleClubDiscount(false)} onSubmit={() => handleSubmit(cart)} />\n </ModalLogin>\n )}\n </>\n )}\n </>\n );\n};\n\nRates.displayName = 'Mirai:Core:Rates';\n\nRates.propTypes = {\n skeleton: PropTypes.bool,\n};\n\nexport { Rates };\n"],"mappings":"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"}
@@ -73,7 +73,7 @@ const Hotelverse = _ref => {
73
73
  }, [checkIn, checkOut, multiRoom]);
74
74
  (0, _react.useEffect)(() => {
75
75
  const el = container.current;
76
- const cdn = process.env.CDN_HOTELVERSE;
76
+ const cdn = process.env.HOTELVERSE_CDN;
77
77
  const scriptEmbed = open && (0, _helpers.addScript)(el, "".concat(cdn, "/scripts/embed.js"));
78
78
  const scriptListener = open && (0, _helpers.addScript)(el, "".concat(cdn, "/scripts/interfaceListener.js"));
79
79
  if (open) {
@@ -1 +1 @@
1
- {"version":3,"file":"Hotelverse.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Hotelverse","style","_shared__","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","FEATURE","HOTELVERSE","Hotelverse","_ref","country","infantAge","items","multiRoom","taxes","onSelect","others","isMobile","useDevice","translate","useLocale","value","club","discount","currency","language","finder","calendar","checkIn","checkOut","occupation","promocode","session","urlParams","idtokenprovider","idHotel","showBanner","show","useStore","open","setOpen","useState","token","setToken","container","useRef","useEffect","ServiceFeatures","ServiceHotelverse","getToken","checkin","dateFormatBase","format","CALENDAR_FORMAT","el","current","cdn","process","env","CDN_HOTELVERSE","scriptEmbed","addScript","concat","scriptListener","document","body","classList","add","window","callbackSelectRoom","hvIsOr","hvLocator","idHotelverse","hvRoomNumber","roomNumber","resultKey","arguments","length","undefined","boardId","replace","board","flatMap","boards","find","id","subjectToAvailability","remove","removeChild","dateFormat","date","delimiter","btoa","commandInterface","JSON","stringify","onSelectRoom","callback","enabled","method","customParams","amount","adults","type","TYPE_OCCUPATION","CHILD","ages","childAges","children","filter","age","infants","search","paxes","taxIncluded","createElement","Fragment","Pressable","onPress","className","pressable","center","wide","Icon","ICON","THREE_D","Text","action","bold","L10N","ACTION_HOTEL_VERSE","Modal","blur","fit","portal","title","LABEL_HOTEL_VERSE","visible","onClose","modal","ref","toUpperCase","exports","displayName","propTypes","PropTypes","string","number","array","bool","func"],"sources":["../../../../../src/components/Rates/components/Hotelverse/Hotelverse.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { dateFormat as dateFormatBase, useLocale } from '@mirai/locale';\nimport { ServiceFeatures, ServiceHotelVerse as ServiceHotelverse } from '@mirai/services';\nimport { Icon, Modal, Pressable, Text, useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { L10N } from './Hotelverse.l10n';\nimport * as style from './Hotelverse.module.css';\nimport { TYPE_OCCUPATION } from '../../../__shared__';\nimport { addScript, CALENDAR_FORMAT, ICON } from '../../../helpers';\n\nconst FEATURE = { HOTELVERSE: 'hotelverse' };\n\nconst Hotelverse = ({ country, infantAge, items = [], multiRoom, taxes, onSelect = () => {}, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n club: { discount } = {},\n currency,\n language,\n finder: { calendar: [checkIn, checkOut] = [], occupation: [occupation] = [], promocode = '' } = {},\n session,\n urlParams: { idtokenprovider: idHotel, showBanner: show } = {},\n } = {},\n } = useStore();\n\n const [open, setOpen] = useState(false);\n const [token, setToken] = useState();\n\n const container = useRef(null);\n\n useEffect(() => {\n if ((show === 'true' || ServiceFeatures.get(FEATURE.HOTELVERSE, idHotel)) && checkIn && !multiRoom) {\n (async () => {\n setToken(\n await ServiceHotelverse.getToken({ checkin: dateFormatBase(checkIn, { format: CALENDAR_FORMAT }), idHotel }),\n );\n })();\n } else setToken();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checkIn, checkOut, multiRoom]);\n\n useEffect(() => {\n const el = container.current;\n const cdn = process.env.CDN_HOTELVERSE;\n const scriptEmbed = open && addScript(el, `${cdn}/scripts/embed.js`);\n const scriptListener = open && addScript(el, `${cdn}/scripts/interfaceListener.js`);\n\n if (open) {\n document.body.classList.add('hotelverse-open');\n\n window.callbackSelectRoom = ([{ hvIsOr, hvLocator: idHotelverse, hvRoomNumber: roomNumber, resultKey }] = []) => {\n setOpen(false);\n\n const boardId = resultKey.replace(/\\|/g, '--');\n const board = items.flatMap(({ boards } = {}) => boards).find(({ id } = {}) => id === boardId);\n\n onSelect(board, { idHotelverse, roomNumber, subjectToAvailability: hvIsOr });\n };\n }\n\n return () => {\n document.body.classList.remove('hotelverse-open');\n if (scriptEmbed) el?.removeChild(scriptEmbed);\n if (scriptListener) el?.removeChild(scriptListener);\n window.callbackSelectRoom = undefined;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n const dateFormat = (date) => dateFormatBase(date, { delimiter: '-', format: 'YYYY-MM-DD' });\n\n const { btoa } = window;\n const commandInterface = btoa(\n JSON.stringify({\n onSelectRoom: {\n callback: 'callbackSelectRoom',\n enabled: true,\n method: 'PostMessage',\n customParams: [],\n },\n }),\n );\n\n const { amount: adults = 0 } = occupation.find(({ type } = {}) => type !== TYPE_OCCUPATION.CHILD) || {};\n const { ages: childAges = [] } = occupation.find(({ type } = {}) => type === TYPE_OCCUPATION.CHILD) || {};\n const children = childAges.filter((age) => age > infantAge).length;\n const infants = childAges.filter((age) => age < infantAge).length;\n const search = btoa(\n JSON.stringify({\n checkIn: dateFormat(checkIn),\n checkOut: dateFormat(checkOut),\n paxes: [{ adults, children, infants, childAges }],\n taxIncluded: !!taxes,\n currency,\n country,\n language,\n promocode,\n }),\n );\n\n return token ? (\n <>\n <Pressable\n onPress={() => setOpen(!open)}\n className={[style.pressable, style.center, others.className, isMobile && discount && !session && style.wide]}\n >\n <Icon value={ICON.THREE_D} />\n <Text action bold>\n {translate(L10N.ACTION_HOTEL_VERSE)}\n </Text>\n </Pressable>\n <Modal\n blur\n fit\n portal\n title={translate(L10N.LABEL_HOTEL_VERSE)}\n visible={open}\n onClose={() => setOpen(false)}\n data-testid=\"hv-modal\"\n className={style.modal}\n >\n {open && (\n <div ref={container}>\n <div\n id=\"hv\"\n data-hvexthotelid={idHotel}\n data-hvclientid=\"6\"\n data-hvproduct=\"BookYourRoom\"\n data-hvaccesstokenhv={token}\n data-hvcommandsinterface={commandInterface}\n data-hvlanguage={language.toUpperCase()}\n data-hvsearch={search}\n data-hvcurrency={currency}\n ></div>\n </div>\n )}\n </Modal>\n </>\n ) : null;\n};\n\nHotelverse.displayName = 'Mirai:Core:Rates:Hotelverse';\n\nHotelverse.propTypes = {\n country: PropTypes.string,\n infantAge: PropTypes.number,\n items: PropTypes.array,\n multiRoom: PropTypes.bool,\n taxes: PropTypes.string,\n onSelect: PropTypes.func,\n};\n\nexport { Hotelverse };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Hotelverse.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Hotelverse","style","_shared__","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","FEATURE","HOTELVERSE","Hotelverse","_ref","country","infantAge","items","multiRoom","taxes","onSelect","others","isMobile","useDevice","translate","useLocale","value","club","discount","currency","language","finder","calendar","checkIn","checkOut","occupation","promocode","session","urlParams","idtokenprovider","idHotel","showBanner","show","useStore","open","setOpen","useState","token","setToken","container","useRef","useEffect","ServiceFeatures","ServiceHotelverse","getToken","checkin","dateFormatBase","format","CALENDAR_FORMAT","el","current","cdn","process","env","HOTELVERSE_CDN","scriptEmbed","addScript","concat","scriptListener","document","body","classList","add","window","callbackSelectRoom","hvIsOr","hvLocator","idHotelverse","hvRoomNumber","roomNumber","resultKey","arguments","length","undefined","boardId","replace","board","flatMap","boards","find","id","subjectToAvailability","remove","removeChild","dateFormat","date","delimiter","btoa","commandInterface","JSON","stringify","onSelectRoom","callback","enabled","method","customParams","amount","adults","type","TYPE_OCCUPATION","CHILD","ages","childAges","children","filter","age","infants","search","paxes","taxIncluded","createElement","Fragment","Pressable","onPress","className","pressable","center","wide","Icon","ICON","THREE_D","Text","action","bold","L10N","ACTION_HOTEL_VERSE","Modal","blur","fit","portal","title","LABEL_HOTEL_VERSE","visible","onClose","modal","ref","toUpperCase","exports","displayName","propTypes","PropTypes","string","number","array","bool","func"],"sources":["../../../../../src/components/Rates/components/Hotelverse/Hotelverse.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { dateFormat as dateFormatBase, useLocale } from '@mirai/locale';\nimport { ServiceFeatures, ServiceHotelVerse as ServiceHotelverse } from '@mirai/services';\nimport { Icon, Modal, Pressable, Text, useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { L10N } from './Hotelverse.l10n';\nimport * as style from './Hotelverse.module.css';\nimport { TYPE_OCCUPATION } from '../../../__shared__';\nimport { addScript, CALENDAR_FORMAT, ICON } from '../../../helpers';\n\nconst FEATURE = { HOTELVERSE: 'hotelverse' };\n\nconst Hotelverse = ({ country, infantAge, items = [], multiRoom, taxes, onSelect = () => {}, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n club: { discount } = {},\n currency,\n language,\n finder: { calendar: [checkIn, checkOut] = [], occupation: [occupation] = [], promocode = '' } = {},\n session,\n urlParams: { idtokenprovider: idHotel, showBanner: show } = {},\n } = {},\n } = useStore();\n\n const [open, setOpen] = useState(false);\n const [token, setToken] = useState();\n\n const container = useRef(null);\n\n useEffect(() => {\n if ((show === 'true' || ServiceFeatures.get(FEATURE.HOTELVERSE, idHotel)) && checkIn && !multiRoom) {\n (async () => {\n setToken(\n await ServiceHotelverse.getToken({ checkin: dateFormatBase(checkIn, { format: CALENDAR_FORMAT }), idHotel }),\n );\n })();\n } else setToken();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checkIn, checkOut, multiRoom]);\n\n useEffect(() => {\n const el = container.current;\n const cdn = process.env.HOTELVERSE_CDN;\n const scriptEmbed = open && addScript(el, `${cdn}/scripts/embed.js`);\n const scriptListener = open && addScript(el, `${cdn}/scripts/interfaceListener.js`);\n\n if (open) {\n document.body.classList.add('hotelverse-open');\n\n window.callbackSelectRoom = ([{ hvIsOr, hvLocator: idHotelverse, hvRoomNumber: roomNumber, resultKey }] = []) => {\n setOpen(false);\n\n const boardId = resultKey.replace(/\\|/g, '--');\n const board = items.flatMap(({ boards } = {}) => boards).find(({ id } = {}) => id === boardId);\n\n onSelect(board, { idHotelverse, roomNumber, subjectToAvailability: hvIsOr });\n };\n }\n\n return () => {\n document.body.classList.remove('hotelverse-open');\n if (scriptEmbed) el?.removeChild(scriptEmbed);\n if (scriptListener) el?.removeChild(scriptListener);\n window.callbackSelectRoom = undefined;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n const dateFormat = (date) => dateFormatBase(date, { delimiter: '-', format: 'YYYY-MM-DD' });\n\n const { btoa } = window;\n const commandInterface = btoa(\n JSON.stringify({\n onSelectRoom: {\n callback: 'callbackSelectRoom',\n enabled: true,\n method: 'PostMessage',\n customParams: [],\n },\n }),\n );\n\n const { amount: adults = 0 } = occupation.find(({ type } = {}) => type !== TYPE_OCCUPATION.CHILD) || {};\n const { ages: childAges = [] } = occupation.find(({ type } = {}) => type === TYPE_OCCUPATION.CHILD) || {};\n const children = childAges.filter((age) => age > infantAge).length;\n const infants = childAges.filter((age) => age < infantAge).length;\n const search = btoa(\n JSON.stringify({\n checkIn: dateFormat(checkIn),\n checkOut: dateFormat(checkOut),\n paxes: [{ adults, children, infants, childAges }],\n taxIncluded: !!taxes,\n currency,\n country,\n language,\n promocode,\n }),\n );\n\n return token ? (\n <>\n <Pressable\n onPress={() => setOpen(!open)}\n className={[style.pressable, style.center, others.className, isMobile && discount && !session && style.wide]}\n >\n <Icon value={ICON.THREE_D} />\n <Text action bold>\n {translate(L10N.ACTION_HOTEL_VERSE)}\n </Text>\n </Pressable>\n <Modal\n blur\n fit\n portal\n title={translate(L10N.LABEL_HOTEL_VERSE)}\n visible={open}\n onClose={() => setOpen(false)}\n data-testid=\"hv-modal\"\n className={style.modal}\n >\n {open && (\n <div ref={container}>\n <div\n id=\"hv\"\n data-hvexthotelid={idHotel}\n data-hvclientid=\"6\"\n data-hvproduct=\"BookYourRoom\"\n data-hvaccesstokenhv={token}\n data-hvcommandsinterface={commandInterface}\n data-hvlanguage={language.toUpperCase()}\n data-hvsearch={search}\n data-hvcurrency={currency}\n ></div>\n </div>\n )}\n </Modal>\n </>\n ) : null;\n};\n\nHotelverse.displayName = 'Mirai:Core:Rates:Hotelverse';\n\nHotelverse.propTypes = {\n country: PropTypes.string,\n infantAge: PropTypes.number,\n items: PropTypes.array,\n multiRoom: PropTypes.bool,\n taxes: PropTypes.string,\n onSelect: PropTypes.func,\n};\n\nexport { Hotelverse };\n"],"mappings":"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"}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Features = void 0;
7
+ var _dataSources = require("@mirai/data-sources");
7
8
  var _locale = require("@mirai/locale");
8
9
  var _ui = require("@mirai/ui");
9
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -19,14 +20,25 @@ const Features = _ref => {
19
20
  let {
20
21
  bedTypes = [],
21
22
  compact = false,
22
- maxOccupation = 2,
23
- occupation = [],
23
+ features: {
24
+ showSelectedOccupation = false
25
+ } = {},
26
+ maxOccupation: roomMaxOccupation = 2,
27
+ occupation: roomOccupation = [],
28
+ room = 0,
24
29
  size,
25
30
  ...others
26
31
  } = _ref;
27
32
  const {
28
33
  translate
29
34
  } = (0, _locale.useLocale)();
35
+ const {
36
+ value: {
37
+ finder: {
38
+ occupation: finderOccupation = []
39
+ } = {}
40
+ }
41
+ } = (0, _dataSources.useStore)();
30
42
  const iconProps = {
31
43
  headline: true,
32
44
  level: 3
@@ -35,6 +47,17 @@ const Features = _ref => {
35
47
  small: true,
36
48
  className: compact ? style.textCompact : undefined
37
49
  };
50
+ let occupation = roomOccupation;
51
+ let maxOccupation = roomMaxOccupation;
52
+ if (showSelectedOccupation && finderOccupation[room]) {
53
+ occupation = finderOccupation[room];
54
+ maxOccupation = occupation.reduce(function (total) {
55
+ let {
56
+ amount
57
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
58
+ return total += amount;
59
+ }, 0);
60
+ }
38
61
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
39
62
  row: true,
40
63
  className: (0, _ui.styles)(style.features, others.className)
@@ -65,12 +88,14 @@ exports.Features = Features;
65
88
  Features.propTypes = {
66
89
  bedTypes: _propTypes.default.arrayOf(_propTypes.default.number),
67
90
  compact: _propTypes.default.bool,
91
+ features: _propTypes.default.shape({}),
68
92
  maxOccupation: _propTypes.default.number,
69
93
  occupation: _propTypes.default.arrayOf(_propTypes.default.shape({
70
94
  ages: _propTypes.default.arrayOf(_propTypes.default.number),
71
95
  amount: _propTypes.default.number,
72
96
  type: _propTypes.default.number
73
97
  })),
98
+ room: _propTypes.default.number,
74
99
  size: _propTypes.default.string
75
100
  };
76
101
  Features.displayName = 'Mirai:Core:Rates:Item:Features';
@@ -1 +1 @@
1
- {"version":3,"file":"Features.js","names":["_locale","require","_ui","_propTypes","_interopRequireDefault","_react","style","_interopRequireWildcard","_helpers","_Item","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Features","_ref","bedTypes","compact","maxOccupation","occupation","size","others","translate","useLocale","iconProps","headline","level","textProps","small","className","textCompact","undefined","createElement","View","row","styles","features","item","Icon","value","ICON","SIZE","Text","Tooltip","text","map","getOccupationLabel","ages","join","PERSON","GROUP","GROUPS","BED_DOUBLE","type","L10N","LABEL_BED_TYPE","concat","LABEL_OR","exports","propTypes","PropTypes","arrayOf","number","bool","shape","amount","string","displayName"],"sources":["../../../../../../../src/components/Rates/components/Item/components/Features/Features.jsx"],"sourcesContent":["import { useLocale } from '@mirai/locale';\nimport { Icon, styles, Text, Tooltip, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport * as style from './Features.module.css';\nimport { getOccupationLabel, ICON } from '../../../../../helpers';\nimport { L10N } from '../../Item.l10n';\n\nconst Features = ({ bedTypes = [], compact = false, maxOccupation = 2, occupation = [], size, ...others }) => {\n const { translate } = useLocale();\n\n const iconProps = { headline: true, level: 3 };\n const textProps = { small: true, className: compact ? style.textCompact : undefined };\n\n return (\n <View row className={styles(style.features, others.className)}>\n {size && (\n <View row className={style.item}>\n <Icon {...iconProps} value={ICON.SIZE} />\n <Text {...textProps}>{size}</Text>\n </View>\n )}\n\n {maxOccupation > 0 && (\n <Tooltip\n text={occupation.map((item) => getOccupationLabel({ ...item, ages: [] }, translate)).join(' + ')}\n className={style.item}\n >\n <View row className={style.item}>\n <Icon\n {...iconProps}\n value={maxOccupation === 1 ? ICON.PERSON : maxOccupation === 2 ? ICON.GROUP : ICON.GROUPS}\n />\n <Text {...textProps}>{maxOccupation}</Text>\n </View>\n </Tooltip>\n )}\n\n {bedTypes.length > 0 && (\n <View row className={style.item}>\n <Icon {...iconProps} value={ICON.BED_DOUBLE} />\n <Text {...textProps}>\n {bedTypes.map((type) => translate(L10N.LABEL_BED_TYPE[type])).join(` ${translate(L10N.LABEL_OR)} `)}\n </Text>\n </View>\n )}\n </View>\n );\n};\n\nFeatures.propTypes = {\n bedTypes: PropTypes.arrayOf(PropTypes.number),\n compact: PropTypes.bool,\n maxOccupation: PropTypes.number,\n occupation: PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n size: PropTypes.string,\n};\n\nFeatures.displayName = 'Mirai:Core:Rates:Item:Features';\n\nexport { Features };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Features.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","style","_interopRequireWildcard","_helpers","_Item","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Features","_ref","bedTypes","compact","features","showSelectedOccupation","maxOccupation","roomMaxOccupation","occupation","roomOccupation","room","size","others","translate","useLocale","value","finder","finderOccupation","useStore","iconProps","headline","level","textProps","small","className","textCompact","undefined","reduce","total","amount","createElement","View","row","styles","item","Icon","ICON","SIZE","Text","Tooltip","text","map","getOccupationLabel","ages","join","PERSON","GROUP","GROUPS","BED_DOUBLE","type","L10N","LABEL_BED_TYPE","concat","LABEL_OR","exports","propTypes","PropTypes","arrayOf","number","bool","shape","string","displayName"],"sources":["../../../../../../../src/components/Rates/components/Item/components/Features/Features.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Icon, styles, Text, Tooltip, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport * as style from './Features.module.css';\nimport { getOccupationLabel, ICON } from '../../../../../helpers';\nimport { L10N } from '../../Item.l10n';\n\nconst Features = ({\n bedTypes = [],\n compact = false,\n features: { showSelectedOccupation = false } = {},\n maxOccupation: roomMaxOccupation = 2,\n occupation: roomOccupation = [],\n room = 0,\n size,\n ...others\n}) => {\n const { translate } = useLocale();\n const {\n value: { finder: { occupation: finderOccupation = [] } = {} },\n } = useStore();\n\n const iconProps = { headline: true, level: 3 };\n const textProps = { small: true, className: compact ? style.textCompact : undefined };\n\n let occupation = roomOccupation;\n let maxOccupation = roomMaxOccupation;\n\n if (showSelectedOccupation && finderOccupation[room]) {\n occupation = finderOccupation[room];\n maxOccupation = occupation.reduce((total, { amount } = {}) => (total += amount), 0);\n }\n\n return (\n <View row className={styles(style.features, others.className)}>\n {size && (\n <View row className={style.item}>\n <Icon {...iconProps} value={ICON.SIZE} />\n <Text {...textProps}>{size}</Text>\n </View>\n )}\n\n {maxOccupation > 0 && (\n <Tooltip\n text={occupation.map((item) => getOccupationLabel({ ...item, ages: [] }, translate)).join(' + ')}\n className={style.item}\n >\n <View row className={style.item}>\n <Icon\n {...iconProps}\n value={maxOccupation === 1 ? ICON.PERSON : maxOccupation === 2 ? ICON.GROUP : ICON.GROUPS}\n />\n <Text {...textProps}>{maxOccupation}</Text>\n </View>\n </Tooltip>\n )}\n\n {bedTypes.length > 0 && (\n <View row className={style.item}>\n <Icon {...iconProps} value={ICON.BED_DOUBLE} />\n <Text {...textProps}>\n {bedTypes.map((type) => translate(L10N.LABEL_BED_TYPE[type])).join(` ${translate(L10N.LABEL_OR)} `)}\n </Text>\n </View>\n )}\n </View>\n );\n};\n\nFeatures.propTypes = {\n bedTypes: PropTypes.arrayOf(PropTypes.number),\n compact: PropTypes.bool,\n features: PropTypes.shape({}),\n maxOccupation: PropTypes.number,\n occupation: PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n room: PropTypes.number,\n size: PropTypes.string,\n};\n\nFeatures.displayName = 'Mirai:Core:Rates:Item:Features';\n\nexport { Features };\n"],"mappings":"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"}