@mirai/core 0.3.52 → 0.3.53

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 (46) hide show
  1. package/build/components/Checkout/helpers/index.js +0 -11
  2. package/build/components/Checkout/helpers/index.js.map +1 -1
  3. package/build/components/Checkout/partials/Checkout.Form.js +1 -1
  4. package/build/components/Checkout/partials/Checkout.Form.js.map +1 -1
  5. package/build/components/Rates/Rates.Footer.js +23 -18
  6. package/build/components/Rates/Rates.Footer.js.map +1 -1
  7. package/build/components/Rates/Rates.constants.js +8 -0
  8. package/build/components/Rates/Rates.constants.js.map +1 -1
  9. package/build/components/Rates/Rates.js +35 -14
  10. package/build/components/Rates/Rates.js.map +1 -1
  11. package/build/components/Rates/Rates.l10n.js +9 -4
  12. package/build/components/Rates/Rates.l10n.js.map +1 -1
  13. package/build/components/Rates/Rates.module.css +15 -7
  14. package/build/components/Rates/components/Item/Item.Preview.js +127 -0
  15. package/build/components/Rates/components/Item/Item.Preview.js.map +1 -0
  16. package/build/components/Rates/components/Item/Item.Rates.js +185 -0
  17. package/build/components/Rates/components/Item/Item.Rates.js.map +1 -0
  18. package/build/components/Rates/components/Item/Item.js +10 -188
  19. package/build/components/Rates/components/Item/Item.js.map +1 -1
  20. package/build/components/Rates/components/Item/Item.l10n.js +6 -0
  21. package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
  22. package/build/components/Rates/components/Item/Item.module.css +21 -0
  23. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +1 -4
  24. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
  25. package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.js +38 -0
  26. package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.js.map +1 -0
  27. package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.module.css +20 -0
  28. package/build/components/Rates/components/Item/components/ModalUrl/index.js +17 -0
  29. package/build/components/Rates/components/Item/components/ModalUrl/index.js.map +1 -0
  30. package/build/components/Rates/components/Item/components/index.js +11 -0
  31. package/build/components/Rates/components/Item/components/index.js.map +1 -1
  32. package/build/components/Rates/components/Item/index.js +8 -1
  33. package/build/components/Rates/components/Item/index.js.map +1 -1
  34. package/build/components/helpers/ICON.js +4 -0
  35. package/build/components/helpers/ICON.js.map +1 -1
  36. package/build/components/helpers/generateId.js.map +1 -0
  37. package/build/components/helpers/index.js +11 -0
  38. package/build/components/helpers/index.js.map +1 -1
  39. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +0 -18
  40. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +0 -12
  41. package/build/services/Rates/__tests__/__mocks__/rates-response.json +0 -6
  42. package/build/services/Rates/get.js +7 -4
  43. package/build/services/Rates/get.js.map +1 -1
  44. package/package.json +1 -1
  45. package/build/components/Checkout/helpers/generateId.js.map +0 -1
  46. /package/build/components/{Checkout/helpers → helpers}/generateId.js +0 -0
@@ -3,17 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _generateId = require("./generateId");
7
- Object.keys(_generateId).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _generateId[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _generateId[key];
14
- }
15
- });
16
- });
17
6
  var _getFieldProps = require("./getFieldProps");
18
7
  Object.keys(_getFieldProps).forEach(function (key) {
19
8
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_generateId","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getFieldProps","_getVariant","_trackDataSource","_trackForm"],"sources":["../../../../src/components/Checkout/helpers/index.js"],"sourcesContent":["export * from './generateId';\nexport * from './getFieldProps';\nexport * from './getVariant';\nexport * from './trackDataSource';\nexport * from './trackForm';\n"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,cAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,cAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,cAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,cAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,WAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,WAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,WAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,gBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,gBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,gBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,gBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,UAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,UAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,UAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,UAAA,CAAAR,GAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"index.js","names":["_getFieldProps","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getVariant","_trackDataSource","_trackForm"],"sources":["../../../../src/components/Checkout/helpers/index.js"],"sourcesContent":["export * from './getFieldProps';\nexport * from './getVariant';\nexport * from './trackDataSource';\nexport * from './trackForm';\n"],"mappings":";;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,cAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,cAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,cAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,WAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,WAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,WAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,WAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,gBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,gBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,gBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,gBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,UAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,UAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,UAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,UAAA,CAAAP,GAAA;IAAA;EAAA;AAAA"}
@@ -25,7 +25,7 @@ const storage = new _dataSources.Storage({
25
25
  adapter: _dataSources.LocalAdapter,
26
26
  cache: _Checkout.FORM_STORAGE_CACHE
27
27
  });
28
- const key = dataSource => "".concat(_Checkout.FORM_STORAGE_KEY, ":").concat((0, _helpers2.generateId)(JSON.stringify(dataSource)));
28
+ const key = dataSource => "".concat(_Checkout.FORM_STORAGE_KEY, ":").concat((0, _helpers.generateId)(JSON.stringify(dataSource)));
29
29
  const Form = _ref => {
30
30
  let {
31
31
  dataSource: {
@@ -1 +1 @@
1
- {"version":3,"file":"Checkout.Form.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_shared__","_helpers","_Checkout","_Checkout2","style","_helpers2","_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","hasTracking","storage","Storage","adapter","LocalAdapter","cache","FORM_STORAGE_CACHE","dataSource","concat","FORM_STORAGE_KEY","generateId","JSON","stringify","Form","_ref","currency","repositories","countries","form","schema","variant","onError","others","isDesktop","useDevice","translate","useLocale","track","useMetrics","value","club","id","locale","payment","session","useStore","errorForm","setErrorForm","useState","errorPayment","setErrorPayment","setForm","fromEntries","entries","map","_ref2","formTracked","setFormTracked","useEffect","ServiceFeatures","FEATURE_CHECKOUT_TRACKING","useLayoutEffect","keys","checkout","handleChange","next","country","phone","code","ServiceCountry","info","getCountryCode","handleEnter","field","TRACKING","handleLeave","email","firstName","lastName","trackForm","config","publicKey","createElement","Fragment","autoComplete","validateOnMount","onChange","onEnter","onLeave","className","styles","box","Text","bold","headline","wide","L10N","LABEL_PERSONAL_INFORMATION","TextRequiredFields","filter","_ref3","_ref4","visible","_ref5","React","FIELD","input","InputText","getFieldProps","error","Payment","method","exports","displayName","propTypes","PropTypes","shape","string","func"],"sources":["../../../../src/components/Checkout/partials/Checkout.Form.jsx"],"sourcesContent":["import { LocalAdapter, Storage, useMetrics, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceCountry, ServiceFeatures } from '@mirai/services';\nimport { InputText, Form as FormBase, styles, Text, useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useLayoutEffect, useState } from 'react';\n\nimport { Payment, TextRequiredFields } from '../../__shared__';\nimport { getCountryCode } from '../../helpers';\nimport {\n FEATURE_CHECKOUT_TRACKING,\n FIELD,\n FORM_STORAGE_CACHE,\n FORM_STORAGE_KEY,\n TRACKING,\n} from '../Checkout.constants';\nimport { L10N } from '../Checkout.l10n';\nimport * as style from '../Checkout.module.css';\nimport { generateId, getFieldProps, trackForm } from '../helpers';\n\nlet hasTracking = false;\n\nconst storage = new Storage({ adapter: LocalAdapter, cache: FORM_STORAGE_CACHE });\n\nconst key = (dataSource) => `${FORM_STORAGE_KEY}:${generateId(JSON.stringify(dataSource))}`;\n\nconst Form = ({\n dataSource: { currency, repositories: { countries } = {}, form: schema = {}, ...dataSource } = {},\n variant,\n onError = () => {},\n ...others\n}) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { track } = useMetrics();\n const {\n set,\n value: { club, id, locale, payment, session },\n } = useStore();\n\n const [errorForm, setErrorForm] = useState({});\n const [errorPayment, setErrorPayment] = useState({});\n const [form, setForm] = useState(\n storage.get(key(dataSource)) || Object.fromEntries(Object.entries(schema).map(([key, { value }]) => [key, value])),\n );\n const [formTracked, setFormTracked] = useState();\n\n useEffect(() => {\n hasTracking = ServiceFeatures.get(FEATURE_CHECKOUT_TRACKING, id);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n setForm({ ...form, ...session });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [session]);\n\n useLayoutEffect(() => {\n if (Object.keys(form).length) storage.set(key(dataSource), form);\n set({ checkout: form });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [form]);\n\n useEffect(() => {\n onError(Object.keys({ ...errorForm, ...errorPayment }).length > 0);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [errorForm, errorPayment]);\n\n const handleChange = async (next) => {\n if (!!schema.country && next.country && !next.phone) {\n const { code } = await ServiceCountry.info(getCountryCode(next.country, countries));\n if (code) next.phone = code;\n }\n\n setForm(next);\n };\n\n const handleEnter = (field) => hasTracking && track(`${TRACKING}:INPUT:${field}`, { field, locale, variant });\n\n const handleLeave = () => {\n const { email, firstName, lastName, phone } = errorForm;\n if (!formTracked && !email && !firstName && !lastName && !phone) {\n trackForm(form);\n setFormTracked(true);\n }\n };\n\n const { payment: { config: { publicKey = {}, ...config } = {} } = {} } = dataSource || {};\n\n return (\n <>\n <FormBase\n {...others}\n autoComplete=\"off\"\n validateOnMount\n onChange={handleChange}\n onEnter={handleEnter}\n onError={setErrorForm}\n onLeave={handleLeave}\n className={styles(style.form, style.box)}\n >\n <Text bold headline={isDesktop} wide>\n {translate(L10N.LABEL_PERSONAL_INFORMATION)}\n </Text>\n <TextRequiredFields wide />\n\n {Object.entries(schema)\n .filter(([key]) => !!schema[key])\n .filter(([, { visible }]) => !visible || visible(form))\n .map(([key, field = {}]) =>\n React.createElement(\n FIELD[field.input] || InputText,\n getFieldProps(key, field, { value: form[key], error: errorForm[key], session, translate }, club),\n ),\n )}\n </FormBase>\n\n <Payment\n {...{ ...dataSource?.payment, config: { ...config, publicKey: publicKey[payment?.method] } }}\n currency={currency}\n onError={setErrorPayment}\n />\n </>\n );\n};\n\nForm.displayName = 'Mirai:User:Checkout.Form';\n\nForm.propTypes = {\n dataSource: PropTypes.shape({\n form: PropTypes.shape({}),\n }),\n variant: PropTypes.string,\n onError: PropTypes.func,\n};\n\nexport { Form };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Checkout.Form.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_shared__","_helpers","_Checkout","_Checkout2","style","_helpers2","_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","hasTracking","storage","Storage","adapter","LocalAdapter","cache","FORM_STORAGE_CACHE","dataSource","concat","FORM_STORAGE_KEY","generateId","JSON","stringify","Form","_ref","currency","repositories","countries","form","schema","variant","onError","others","isDesktop","useDevice","translate","useLocale","track","useMetrics","value","club","id","locale","payment","session","useStore","errorForm","setErrorForm","useState","errorPayment","setErrorPayment","setForm","fromEntries","entries","map","_ref2","formTracked","setFormTracked","useEffect","ServiceFeatures","FEATURE_CHECKOUT_TRACKING","useLayoutEffect","keys","checkout","handleChange","next","country","phone","code","ServiceCountry","info","getCountryCode","handleEnter","field","TRACKING","handleLeave","email","firstName","lastName","trackForm","config","publicKey","createElement","Fragment","autoComplete","validateOnMount","onChange","onEnter","onLeave","className","styles","box","Text","bold","headline","wide","L10N","LABEL_PERSONAL_INFORMATION","TextRequiredFields","filter","_ref3","_ref4","visible","_ref5","React","FIELD","input","InputText","getFieldProps","error","Payment","method","exports","displayName","propTypes","PropTypes","shape","string","func"],"sources":["../../../../src/components/Checkout/partials/Checkout.Form.jsx"],"sourcesContent":["import { LocalAdapter, Storage, useMetrics, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceCountry, ServiceFeatures } from '@mirai/services';\nimport { InputText, Form as FormBase, styles, Text, useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useLayoutEffect, useState } from 'react';\n\nimport { Payment, TextRequiredFields } from '../../__shared__';\nimport { generateId, getCountryCode } from '../../helpers';\nimport {\n FEATURE_CHECKOUT_TRACKING,\n FIELD,\n FORM_STORAGE_CACHE,\n FORM_STORAGE_KEY,\n TRACKING,\n} from '../Checkout.constants';\nimport { L10N } from '../Checkout.l10n';\nimport * as style from '../Checkout.module.css';\nimport { getFieldProps, trackForm } from '../helpers';\n\nlet hasTracking = false;\n\nconst storage = new Storage({ adapter: LocalAdapter, cache: FORM_STORAGE_CACHE });\n\nconst key = (dataSource) => `${FORM_STORAGE_KEY}:${generateId(JSON.stringify(dataSource))}`;\n\nconst Form = ({\n dataSource: { currency, repositories: { countries } = {}, form: schema = {}, ...dataSource } = {},\n variant,\n onError = () => {},\n ...others\n}) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { track } = useMetrics();\n const {\n set,\n value: { club, id, locale, payment, session },\n } = useStore();\n\n const [errorForm, setErrorForm] = useState({});\n const [errorPayment, setErrorPayment] = useState({});\n const [form, setForm] = useState(\n storage.get(key(dataSource)) || Object.fromEntries(Object.entries(schema).map(([key, { value }]) => [key, value])),\n );\n const [formTracked, setFormTracked] = useState();\n\n useEffect(() => {\n hasTracking = ServiceFeatures.get(FEATURE_CHECKOUT_TRACKING, id);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n setForm({ ...form, ...session });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [session]);\n\n useLayoutEffect(() => {\n if (Object.keys(form).length) storage.set(key(dataSource), form);\n set({ checkout: form });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [form]);\n\n useEffect(() => {\n onError(Object.keys({ ...errorForm, ...errorPayment }).length > 0);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [errorForm, errorPayment]);\n\n const handleChange = async (next) => {\n if (!!schema.country && next.country && !next.phone) {\n const { code } = await ServiceCountry.info(getCountryCode(next.country, countries));\n if (code) next.phone = code;\n }\n\n setForm(next);\n };\n\n const handleEnter = (field) => hasTracking && track(`${TRACKING}:INPUT:${field}`, { field, locale, variant });\n\n const handleLeave = () => {\n const { email, firstName, lastName, phone } = errorForm;\n if (!formTracked && !email && !firstName && !lastName && !phone) {\n trackForm(form);\n setFormTracked(true);\n }\n };\n\n const { payment: { config: { publicKey = {}, ...config } = {} } = {} } = dataSource || {};\n\n return (\n <>\n <FormBase\n {...others}\n autoComplete=\"off\"\n validateOnMount\n onChange={handleChange}\n onEnter={handleEnter}\n onError={setErrorForm}\n onLeave={handleLeave}\n className={styles(style.form, style.box)}\n >\n <Text bold headline={isDesktop} wide>\n {translate(L10N.LABEL_PERSONAL_INFORMATION)}\n </Text>\n <TextRequiredFields wide />\n\n {Object.entries(schema)\n .filter(([key]) => !!schema[key])\n .filter(([, { visible }]) => !visible || visible(form))\n .map(([key, field = {}]) =>\n React.createElement(\n FIELD[field.input] || InputText,\n getFieldProps(key, field, { value: form[key], error: errorForm[key], session, translate }, club),\n ),\n )}\n </FormBase>\n\n <Payment\n {...{ ...dataSource?.payment, config: { ...config, publicKey: publicKey[payment?.method] } }}\n currency={currency}\n onError={setErrorPayment}\n />\n </>\n );\n};\n\nForm.displayName = 'Mirai:User:Checkout.Form';\n\nForm.propTypes = {\n dataSource: PropTypes.shape({\n form: PropTypes.shape({}),\n }),\n variant: PropTypes.string,\n onError: PropTypes.func,\n};\n\nexport { Form };\n"],"mappings":"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"}
@@ -24,6 +24,7 @@ const Footer = _ref => {
24
24
  filter: {
25
25
  clubDiscount = false
26
26
  } = {},
27
+ occupation = [],
27
28
  selected = {},
28
29
  taxes,
29
30
  onChange = () => {}
@@ -52,6 +53,8 @@ const Footer = _ref => {
52
53
  urlParams
53
54
  });
54
55
  };
56
+
57
+ // ! Should know if didnt expire the storage
55
58
  const {
56
59
  length: options
57
60
  } = Object.keys(selected);
@@ -75,9 +78,17 @@ const Footer = _ref => {
75
78
  };
76
79
  });
77
80
  }).flat();
81
+ const ViewCart = () => !soloRoom ? /*#__PURE__*/_react.default.createElement(_ui.Action, {
82
+ inline: true,
83
+ small: isMobile,
84
+ onPress: () => setExpanded(!expanded)
85
+ }, translate(expanded ? _Rates.L10N.ACTION_HIDE_CART : _Rates.L10N.ACTION_VIEW_CART, {
86
+ amount: options
87
+ })) : null;
88
+ const soloRoom = occupation.length === 1;
78
89
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
79
90
  className: (0, _ui.styles)(style.footer, options && style.visible)
80
- }, expanded && /*#__PURE__*/_react.default.createElement(_ui.View, {
91
+ }, (expanded || soloRoom) && /*#__PURE__*/_react.default.createElement(_ui.View, {
81
92
  className: [style.wrapper, style.expanded],
82
93
  wide: true
83
94
  }, Object.entries(selected).map(_ref3 => {
@@ -94,12 +105,14 @@ const Footer = _ref => {
94
105
  key: id,
95
106
  className: style.item
96
107
  }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
108
+ bold: true,
97
109
  small: true,
98
110
  className: style.amount
99
111
  }, "".concat(amount, "x")), /*#__PURE__*/_react.default.createElement(_ui.Text, {
100
112
  small: true,
101
113
  className: style.description
102
114
  }, "".concat(title, " (").concat(name, ")")), /*#__PURE__*/_react.default.createElement(_ui.Text, {
115
+ bold: true,
103
116
  small: true
104
117
  }, (0, _locale.currencyFormat)({
105
118
  currency,
@@ -120,6 +133,10 @@ const Footer = _ref => {
120
133
  className: style.wrapper
121
134
  }, /*#__PURE__*/_react.default.createElement(_ui.View, {
122
135
  className: style.price
136
+ }, /*#__PURE__*/_react.default.createElement(_ui.View, {
137
+ row: true,
138
+ wide: true,
139
+ className: style.line
123
140
  }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
124
141
  bold: true,
125
142
  headline: true,
@@ -127,23 +144,11 @@ const Footer = _ref => {
127
144
  }, (0, _locale.currencyFormat)({
128
145
  currency,
129
146
  value
130
- })), /*#__PURE__*/_react.default.createElement(_ui.View, {
131
- row: true,
132
- className: style.line
133
- }, taxes && /*#__PURE__*/_react.default.createElement(_ui.Text, {
134
- lighten: true,
135
- small: true
136
- }, taxes), /*#__PURE__*/_react.default.createElement(_ui.Text, {
147
+ })), isMobile && /*#__PURE__*/_react.default.createElement(ViewCart, null)), /*#__PURE__*/_react.default.createElement(_ui.Text, {
137
148
  lighten: true,
138
- small: true,
139
- className: style.line
140
- }, translate(_Rates.L10N.LABEL_SELECTED_NUMBER_OPTIONS, {
141
- number: /*#__PURE__*/_react.default.createElement(_ui.Action, {
142
- inline: true,
143
- small: true,
144
- onPress: () => setExpanded(!expanded)
145
- }, " ".concat(options, " options "))
146
- })))), /*#__PURE__*/_react.default.createElement(_ui.Button, {
149
+ small: !isMobile || !taxes,
150
+ tiny: isMobile
151
+ }, taxes || translate(_Rates.L10N.LABEL_INCLUDES_TAXES_FEES))), !isMobile && /*#__PURE__*/_react.default.createElement(ViewCart, null), /*#__PURE__*/_react.default.createElement(_ui.Button, {
147
152
  large: !isMobile,
148
153
  onPress: handlePress
149
154
  }, translate(_Rates.L10N.ACTION_NEXT)))));
@@ -152,9 +157,9 @@ exports.Footer = Footer;
152
157
  Footer.propTypes = {
153
158
  dataSource: _propTypes.default.shape({}),
154
159
  filter: _propTypes.default.shape({}),
160
+ occupation: _propTypes.default.arrayOf(_propTypes.default.array),
155
161
  selected: _propTypes.default.shape({}),
156
162
  taxes: _propTypes.default.string,
157
163
  onChange: _propTypes.default.func
158
164
  };
159
- Footer.displayName = 'Mirai:Core:Rates.Footer';
160
165
  //# sourceMappingURL=Rates.Footer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Rates.Footer.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_Rates","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Footer","_ref","dataSource","items","filter","clubDiscount","selected","taxes","onChange","isMobile","useDevice","translate","useLocale","value","currency","forwarder","urlParams","useStore","expanded","setExpanded","useState","useEffect","keys","length","handlePress","document","location","href","getForwarderUrl","options","values","reduce","_ref2","amount","price","rates","map","name","title","arguments","undefined","rate","flat","createElement","Fragment","View","className","styles","footer","visible","wrapper","wide","entries","_ref3","id","find","row","key","item","Text","small","concat","description","currencyFormat","Button","transparent","squared","onPress","Icon","ICON","CLOSE","bold","headline","level","line","lighten","L10N","LABEL_SELECTED_NUMBER_OPTIONS","number","Action","inline","large","ACTION_NEXT","exports","propTypes","PropTypes","shape","string","func","displayName"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Action, Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { getForwarderUrl } from './helpers';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { ICON } from '../helpers';\n\nconst Footer = ({\n dataSource: { items = [] } = {},\n filter: { clubDiscount = false } = {},\n selected = {},\n taxes,\n onChange = () => {},\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: { currency, forwarder, urlParams } = {} } = useStore();\n\n const [expanded, setExpanded] = useState(false);\n\n useEffect(() => Object.keys(selected).length === 0 && setExpanded(false), [selected]);\n\n const handlePress = () => {\n document.location.href = getForwarderUrl({ clubDiscount, currency, forwarder, selected, urlParams });\n };\n\n const { length: options } = Object.keys(selected);\n const value = Object.values(selected).reduce((value, { amount, price }) => value + amount * price, 0);\n const rates = items.map(({ rates = [], name: title } = {}) => rates.map((rate = {}) => ({ ...rate, title }))).flat();\n\n return (\n <>\n <View className={styles(style.footer, options && style.visible)}>\n {expanded && (\n <View className={[style.wrapper, style.expanded]} wide>\n {Object.entries(selected).map(([id, { amount, price }]) => {\n const { name, title } = rates.find((rate) => rate.id === id);\n\n return (\n <View row key={id} className={style.item}>\n <Text small className={style.amount}>{`${amount}x`}</Text>\n <Text small className={style.description}>{`${title} (${name})`}</Text>\n <Text small>{currencyFormat({ currency, value: amount * price })}</Text>\n\n <Button transparent small squared onPress={() => onChange({ id, amount: 0 })}>\n <Icon value={ICON.CLOSE} />\n </Button>\n </View>\n );\n })}\n </View>\n )}\n\n <View row className={style.wrapper}>\n <View className={style.price}>\n <Text bold headline level={2}>\n {currencyFormat({ currency, value })}\n </Text>\n <View row className={style.line}>\n {taxes && (\n <Text lighten small>\n {taxes}\n </Text>\n )}\n <Text lighten small className={style.line}>\n {translate(L10N.LABEL_SELECTED_NUMBER_OPTIONS, {\n number: (\n <Action inline small onPress={() => setExpanded(!expanded)}>\n {` ${options} options `}\n </Action>\n ),\n })}\n </Text>\n </View>\n </View>\n\n <Button large={!isMobile} onPress={handlePress}>\n {translate(L10N.ACTION_NEXT)}\n </Button>\n </View>\n </View>\n </>\n );\n};\n\nFooter.propTypes = {\n dataSource: PropTypes.shape({}),\n filter: PropTypes.shape({}),\n selected: PropTypes.shape({}),\n taxes: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nFooter.displayName = 'Mirai:Core:Rates.Footer';\n\nexport { Footer };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Rates.Footer.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_Rates","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Footer","_ref","dataSource","items","filter","clubDiscount","occupation","selected","taxes","onChange","isMobile","useDevice","translate","useLocale","value","currency","forwarder","urlParams","useStore","expanded","setExpanded","useState","useEffect","keys","length","handlePress","document","location","href","getForwarderUrl","options","values","reduce","_ref2","amount","price","rates","map","name","title","arguments","undefined","rate","flat","ViewCart","soloRoom","createElement","Action","inline","small","onPress","L10N","ACTION_HIDE_CART","ACTION_VIEW_CART","Fragment","View","className","styles","footer","visible","wrapper","wide","entries","_ref3","id","find","row","key","item","Text","bold","concat","description","currencyFormat","Button","transparent","squared","Icon","ICON","CLOSE","line","headline","level","lighten","tiny","LABEL_INCLUDES_TAXES_FEES","large","ACTION_NEXT","exports","propTypes","PropTypes","shape","arrayOf","array","string","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Action, Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { getForwarderUrl } from './helpers';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { ICON } from '../helpers';\n\nconst Footer = ({\n dataSource: { items = [] } = {},\n filter: { clubDiscount = false } = {},\n occupation = [],\n selected = {},\n taxes,\n onChange = () => {},\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: { currency, forwarder, urlParams } = {} } = useStore();\n\n const [expanded, setExpanded] = useState(false);\n\n useEffect(() => Object.keys(selected).length === 0 && setExpanded(false), [selected]);\n\n const handlePress = () => {\n document.location.href = getForwarderUrl({ clubDiscount, currency, forwarder, selected, urlParams });\n };\n\n // ! Should know if didnt expire the storage\n const { length: options } = Object.keys(selected);\n const value = Object.values(selected).reduce((value, { amount, price }) => value + amount * price, 0);\n const rates = items.map(({ rates = [], name: title } = {}) => rates.map((rate = {}) => ({ ...rate, title }))).flat();\n\n const ViewCart = () =>\n !soloRoom ? (\n <Action inline small={isMobile} onPress={() => setExpanded(!expanded)}>\n {translate(expanded ? L10N.ACTION_HIDE_CART : L10N.ACTION_VIEW_CART, { amount: options })}\n </Action>\n ) : null;\n\n const soloRoom = occupation.length === 1;\n\n return (\n <>\n <View className={styles(style.footer, options && style.visible)}>\n {(expanded || soloRoom) && (\n <View className={[style.wrapper, style.expanded]} wide>\n {Object.entries(selected).map(([id, { amount, price }]) => {\n const { name, title } = rates.find((rate) => rate.id === id);\n\n return (\n <View row key={id} className={style.item}>\n <Text bold small className={style.amount}>{`${amount}x`}</Text>\n <Text small className={style.description}>{`${title} (${name})`}</Text>\n <Text bold small>\n {currencyFormat({ currency, value: amount * price })}\n </Text>\n\n <Button transparent small squared onPress={() => onChange({ id, amount: 0 })}>\n <Icon value={ICON.CLOSE} />\n </Button>\n </View>\n );\n })}\n </View>\n )}\n\n <View row className={style.wrapper}>\n <View className={style.price}>\n <View row wide className={style.line}>\n <Text bold headline level={2}>\n {currencyFormat({ currency, value })}\n </Text>\n {isMobile && <ViewCart />}\n </View>\n\n <Text lighten small={!isMobile || !taxes} tiny={isMobile}>\n {taxes || translate(L10N.LABEL_INCLUDES_TAXES_FEES)}\n </Text>\n </View>\n\n {!isMobile && <ViewCart />}\n\n <Button large={!isMobile} onPress={handlePress}>\n {translate(L10N.ACTION_NEXT)}\n </Button>\n </View>\n </View>\n </>\n );\n};\n\nFooter.propTypes = {\n dataSource: PropTypes.shape({}),\n filter: PropTypes.shape({}),\n occupation: PropTypes.arrayOf(PropTypes.array),\n selected: PropTypes.shape({}),\n taxes: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport { Footer };\n"],"mappings":"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"}
@@ -1,2 +1,10 @@
1
1
  "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RATES_STORAGE_KEY = exports.RATES_STORAGE_CACHE = void 0;
7
+ const RATES_STORAGE_CACHE = exports.RATES_STORAGE_CACHE = 1000 * 60 * 60 * 24 * 2; // 2 days
8
+
9
+ const RATES_STORAGE_KEY = exports.RATES_STORAGE_KEY = 'MIRAI:RATES';
2
10
  //# sourceMappingURL=Rates.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Rates.constants.js","names":[],"sources":["../../../src/components/Rates/Rates.constants.js"],"sourcesContent":[""],"mappings":""}
1
+ {"version":3,"file":"Rates.constants.js","names":["RATES_STORAGE_CACHE","exports","RATES_STORAGE_KEY"],"sources":["../../../src/components/Rates/Rates.constants.js"],"sourcesContent":["const RATES_STORAGE_CACHE = 1000 * 60 * 60 * 24 * 2; // 2 days\n\nconst RATES_STORAGE_KEY = 'MIRAI:RATES';\n\nexport { RATES_STORAGE_CACHE, RATES_STORAGE_KEY };\n"],"mappings":";;;;;;AAAA,MAAMA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;;AAErD,MAAME,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,GAAG,aAAa"}
@@ -10,11 +10,12 @@ var _ui = require("@mirai/ui");
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _components = require("./components");
12
12
  var _helpers = require("./helpers");
13
- var _Rates = require("./Rates.Filter");
14
- var _Rates2 = require("./Rates.Footer");
15
- var _Rates3 = require("./Rates.l10n");
13
+ var _Rates = require("./Rates.constants");
14
+ var _Rates2 = require("./Rates.Filter");
15
+ var _Rates3 = require("./Rates.Footer");
16
+ var _Rates4 = require("./Rates.l10n");
16
17
  var style = _interopRequireWildcard(require("./Rates.module.css"));
17
- var _Rates4 = _interopRequireDefault(require("./Rates.Skeleton"));
18
+ var _Rates5 = _interopRequireDefault(require("./Rates.Skeleton"));
18
19
  var _services = require("../../services");
19
20
  var _Finder = require("../Finder/Finder");
20
21
  var _helpers2 = require("../helpers");
@@ -53,31 +54,46 @@ const Rates = _ref => {
53
54
  });
54
55
  const [itemInfo, setItemInfo] = (0, _react.useState)();
55
56
  const [itemRateInfo, setItemRateInfo] = (0, _react.useState)();
57
+ const [itemUrl, setItemUrl] = (0, _react.useState)();
56
58
  const [responseError, setResponseError] = (0, _react.useState)();
57
59
  const [selected, setSelected] = (0, _react.useState)({});
60
+ const storage = new _dataSources.Storage({
61
+ adapter: _dataSources.LocalAdapter,
62
+ cache: _Rates.RATES_STORAGE_CACHE
63
+ });
58
64
  (0, _react.useEffect)(() => {
59
- fetch(currency);
60
- // eslint-disable-next-line react-hooks/exhaustive-deps
61
- }, [currency, locale, session]);
62
- (0, _react.useEffect)(() => {
65
+ if (urlParams) {
66
+ const nextSelected = storage.get(key(urlParams));
67
+ if (nextSelected) setSelected({});
68
+ }
63
69
  const handleScroll = () => setCompact(true);
64
70
  window.addEventListener('scroll', handleScroll);
65
71
  return () => window.removeEventListener('scroll', handleScroll);
66
72
  // eslint-disable-next-line react-hooks/exhaustive-deps
67
73
  }, []);
74
+ (0, _react.useEffect)(() => {
75
+ storage.set(key(urlParams), selected);
76
+ // eslint-disable-next-line react-hooks/exhaustive-deps
77
+ }, [selected]);
78
+ (0, _react.useEffect)(() => {
79
+ fetch(currency);
80
+ // eslint-disable-next-line react-hooks/exhaustive-deps
81
+ }, [currency, locale, session]);
68
82
  const fetch = async function (currency) {
69
83
  let clubDiscount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : filter.clubDiscount;
70
84
  let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : urlParams;
71
85
  setFetching(true);
72
- setDataSource(await _services.ServiceRates.get({
86
+ const nextParams = {
73
87
  ...params,
74
88
  currency,
75
89
  locale,
76
90
  session,
77
91
  clubDiscount
78
- }).catch(setResponseError));
92
+ };
93
+ setDataSource(await _services.ServiceRates.get(nextParams).catch(setResponseError));
79
94
  setFetching(false);
80
95
  };
96
+ const key = dataSource => "".concat(_Rates.RATES_STORAGE_KEY, ":").concat((0, _helpers2.generateId)(JSON.stringify(dataSource)));
81
97
  const handleChange = function () {
82
98
  let {
83
99
  amount = 0,
@@ -123,7 +139,7 @@ const Rates = _ref => {
123
139
  }, /*#__PURE__*/_react.default.createElement(_Finder.Finder, {
124
140
  assisted: false,
125
141
  compact: compact,
126
- text: translate(_Rates3.L10N.ACTION_SEARCH),
142
+ text: translate(_Rates4.L10N.ACTION_SEARCH),
127
143
  onExpand: () => setCompact(false),
128
144
  onSubmit: handleFinderSubmit
129
145
  })), /*#__PURE__*/_react.default.createElement(_ui.View, _extends({}, others, {
@@ -135,7 +151,7 @@ const Rates = _ref => {
135
151
  className: style.progress
136
152
  }), /*#__PURE__*/_react.default.createElement(_ui.View, {
137
153
  className: [style.wrapper, style.content]
138
- }, response ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Rates.Filter, {
154
+ }, response ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Rates2.Filter, {
139
155
  dataSource: dataSource,
140
156
  value: filter,
141
157
  onChange: handleChangeFilter,
@@ -155,11 +171,13 @@ const Rates = _ref => {
155
171
  taxes: dataSource.taxes,
156
172
  onChange: handleChange,
157
173
  onMoreInfo: () => setItemInfo(item),
158
- onRateInfo: rate => setItemRateInfo(rate)
174
+ onRateInfo: rate => setItemRateInfo(rate),
175
+ onViewUrl: info => setItemUrl(info)
159
176
  }));
160
- })) : /*#__PURE__*/_react.default.createElement(_Rates4.default, null)), /*#__PURE__*/_react.default.createElement(_Rates2.Footer, {
177
+ })) : /*#__PURE__*/_react.default.createElement(_Rates5.default, null)), /*#__PURE__*/_react.default.createElement(_Rates3.Footer, {
161
178
  dataSource,
162
179
  filter,
180
+ occupation,
163
181
  selected,
164
182
  taxes: dataSource === null || dataSource === void 0 ? void 0 : dataSource.taxes,
165
183
  onChange: handleChange
@@ -169,6 +187,9 @@ const Rates = _ref => {
169
187
  })), /*#__PURE__*/_react.default.createElement(_components.ModalItemRateInfo, _extends({}, itemRateInfo, {
170
188
  visible: !!itemRateInfo,
171
189
  onClose: () => setItemRateInfo()
190
+ })), /*#__PURE__*/_react.default.createElement(_components.ModalItemUrl, _extends({}, itemUrl, {
191
+ visible: !!itemUrl,
192
+ onClose: () => setItemUrl()
172
193
  })));
173
194
  };
174
195
  exports.Rates = Rates;
@@ -1 +1 @@
1
- {"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_ui","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","style","_Rates4","_interopRequireDefault","_services","_Finder","_helpers2","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","Rates","_ref","others","translate","useLocale","value","club","discount","currency","finder","occupation","hotel","locale","session","urlParams","useStore","compact","setCompact","useState","dataSource","setDataSource","fetching","setFetching","undefined","filter","setFilter","clubDiscount","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","responseError","setResponseError","selected","setSelected","useEffect","fetch","handleScroll","window","addEventListener","removeEventListener","params","ServiceRates","catch","handleChange","amount","id","standalone","next","handleChangeCurrency","nextCurrency","handleChangeFilter","nextFilter","handleFinderSubmit","values","getFinderParams","history","replaceState","toUrlParams","response","createElement","Fragment","View","className","Finder","assisted","text","L10N","ACTION_SEARCH","onExpand","onSubmit","role","styles","container","Progress","indeterminate","visible","progress","wrapper","content","Filter","onChange","onCurrency","items","map","_ref2","index","item","Item","taxes","onMoreInfo","onRateInfo","rate","Footer","ModalItemInfo","onClose","ModalItemRateInfo","exports"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Progress, styles, View } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport { Item, ModalItemInfo, ModalItemRateInfo } from './components';\nimport { getFinderParams } from './helpers';\nimport { Filter } from './Rates.Filter';\nimport { Footer } from './Rates.Footer';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport Skeleton from './Rates.Skeleton';\nimport { ServiceRates } from '../../services';\nimport { Finder } from '../Finder/Finder';\nimport { toUrlParams } from '../helpers';\n\nconst Rates = ({ ...others }) => {\n const { translate } = useLocale();\n const {\n set,\n value: { club: { discount } = {}, currency, finder: { occupation } = {}, hotel = {}, locale, session, urlParams },\n } = useStore();\n\n const [compact, setCompact] = useState(true);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [filter, setFilter] = useState({ clubDiscount: discount });\n const [itemInfo, setItemInfo] = useState();\n const [itemRateInfo, setItemRateInfo] = useState();\n const [responseError, setResponseError] = useState();\n const [selected, setSelected] = useState({});\n\n useEffect(() => {\n fetch(currency);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency, locale, session]);\n\n useEffect(() => {\n const handleScroll = () => setCompact(true);\n\n window.addEventListener('scroll', handleScroll);\n return () => window.removeEventListener('scroll', handleScroll);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const fetch = async (currency, clubDiscount = filter.clubDiscount, params = urlParams) => {\n setFetching(true);\n setDataSource(\n await ServiceRates.get({ ...params, currency, locale, session, clubDiscount }).catch(setResponseError),\n );\n setFetching(false);\n };\n\n const handleChange = ({ amount = 0, id, standalone = false, ...others } = {}) => {\n const next = standalone ? {} : { ...selected };\n if (amount === 0) delete next[id];\n else next[id] = { amount, ...others };\n\n setSelected(next);\n };\n\n const handleChangeCurrency = async (nextCurrency) => {\n await fetch(nextCurrency);\n set({ currency: nextCurrency });\n };\n\n const handleChangeFilter = async (nextFilter) => {\n setFilter(nextFilter);\n if (nextFilter.clubDiscount !== filter.clubDiscount) await fetch(currency, nextFilter.clubDiscount);\n };\n\n const handleFinderSubmit = (values) => {\n setCompact(true);\n setDataSource(undefined);\n const params = getFinderParams({ ...urlParams, ...values, currency, locale, hotel });\n\n history.replaceState({}, '', toUrlParams(params));\n fetch(currency, filter.clubDiscount, params);\n };\n\n const response = dataSource !== undefined;\n\n return (\n <>\n <View className={style.finder}>\n <Finder\n assisted={false}\n compact={compact}\n text={translate(L10N.ACTION_SEARCH)}\n onExpand={() => setCompact(false)}\n onSubmit={handleFinderSubmit}\n />\n </View>\n <View {...others} role=\"rates\" className={styles(style.container, others.className)}>\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n <View className={[style.wrapper, style.content]}>\n {response ? (\n <>\n <Filter\n dataSource={dataSource}\n value={filter}\n onChange={handleChangeFilter}\n onCurrency={handleChangeCurrency}\n />\n {dataSource.items.map(({ id, ...item }, index) => (\n <Item\n key={id || index}\n {...{ id, ...item, filter, occupation, selected, taxes: dataSource.taxes }}\n onChange={handleChange}\n onMoreInfo={() => setItemInfo(item)}\n onRateInfo={(rate) => setItemRateInfo(rate)}\n />\n ))}\n </>\n ) : (\n <Skeleton />\n )}\n </View>\n\n <Footer {...{ dataSource, filter, selected, taxes: dataSource?.taxes }} onChange={handleChange} />\n </View>\n\n <ModalItemInfo {...itemInfo} visible={!!itemInfo} onClose={() => setItemInfo()} />\n <ModalItemRateInfo {...itemRateInfo} visible={!!itemRateInfo} onClose={() => setItemRateInfo()} />\n </>\n );\n};\n\nexport { Rates };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_ui","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","_Rates4","style","_Rates5","_interopRequireDefault","_services","_Finder","_helpers2","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","Rates","_ref","others","translate","useLocale","value","club","discount","currency","finder","occupation","hotel","locale","session","urlParams","useStore","compact","setCompact","useState","dataSource","setDataSource","fetching","setFetching","undefined","filter","setFilter","clubDiscount","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","itemUrl","setItemUrl","responseError","setResponseError","selected","setSelected","storage","Storage","adapter","LocalAdapter","cache","RATES_STORAGE_CACHE","useEffect","nextSelected","handleScroll","window","addEventListener","removeEventListener","fetch","params","nextParams","ServiceRates","catch","concat","RATES_STORAGE_KEY","generateId","JSON","stringify","handleChange","amount","id","standalone","next","handleChangeCurrency","nextCurrency","handleChangeFilter","nextFilter","handleFinderSubmit","values","getFinderParams","history","replaceState","toUrlParams","response","createElement","Fragment","View","className","Finder","assisted","text","L10N","ACTION_SEARCH","onExpand","onSubmit","role","styles","container","Progress","indeterminate","visible","progress","wrapper","content","Filter","onChange","onCurrency","items","map","_ref2","index","item","Item","taxes","onMoreInfo","onRateInfo","rate","onViewUrl","info","Footer","ModalItemInfo","onClose","ModalItemRateInfo","ModalItemUrl","exports"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { LocalAdapter, Storage, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Progress, styles, View } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport { Item, ModalItemInfo, ModalItemRateInfo, ModalItemUrl } from './components';\nimport { getFinderParams } from './helpers';\nimport { RATES_STORAGE_CACHE, RATES_STORAGE_KEY } from './Rates.constants';\nimport { Filter } from './Rates.Filter';\nimport { Footer } from './Rates.Footer';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport Skeleton from './Rates.Skeleton';\nimport { ServiceRates } from '../../services';\nimport { Finder } from '../Finder/Finder';\nimport { generateId, toUrlParams } from '../helpers';\n\nconst Rates = ({ ...others }) => {\n const { translate } = useLocale();\n const {\n set,\n value: { club: { discount } = {}, currency, finder: { occupation } = {}, hotel = {}, locale, session, urlParams },\n } = useStore();\n\n const [compact, setCompact] = useState(true);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [filter, setFilter] = useState({ clubDiscount: discount });\n const [itemInfo, setItemInfo] = useState();\n const [itemRateInfo, setItemRateInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [responseError, setResponseError] = useState();\n const [selected, setSelected] = useState({});\n\n const storage = new Storage({ adapter: LocalAdapter, cache: RATES_STORAGE_CACHE });\n\n useEffect(() => {\n if (urlParams) {\n const nextSelected = storage.get(key(urlParams));\n if (nextSelected) setSelected({});\n }\n\n const handleScroll = () => setCompact(true);\n window.addEventListener('scroll', handleScroll);\n\n return () => window.removeEventListener('scroll', handleScroll);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n storage.set(key(urlParams), selected);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selected]);\n\n useEffect(() => {\n fetch(currency);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency, locale, session]);\n\n const fetch = async (currency, clubDiscount = filter.clubDiscount, params = urlParams) => {\n setFetching(true);\n const nextParams = { ...params, currency, locale, session, clubDiscount };\n setDataSource(await ServiceRates.get(nextParams).catch(setResponseError));\n setFetching(false);\n };\n\n const key = (dataSource) => `${RATES_STORAGE_KEY}:${generateId(JSON.stringify(dataSource))}`;\n\n const handleChange = ({ amount = 0, id, standalone = false, ...others } = {}) => {\n const next = standalone ? {} : { ...selected };\n if (amount === 0) delete next[id];\n else next[id] = { amount, ...others };\n\n setSelected(next);\n };\n\n const handleChangeCurrency = async (nextCurrency) => {\n await fetch(nextCurrency);\n set({ currency: nextCurrency });\n };\n\n const handleChangeFilter = async (nextFilter) => {\n setFilter(nextFilter);\n if (nextFilter.clubDiscount !== filter.clubDiscount) await fetch(currency, nextFilter.clubDiscount);\n };\n\n const handleFinderSubmit = (values) => {\n setCompact(true);\n setDataSource(undefined);\n const params = getFinderParams({ ...urlParams, ...values, currency, locale, hotel });\n\n history.replaceState({}, '', toUrlParams(params));\n fetch(currency, filter.clubDiscount, params);\n };\n\n const response = dataSource !== undefined;\n\n return (\n <>\n <View className={style.finder}>\n <Finder\n assisted={false}\n compact={compact}\n text={translate(L10N.ACTION_SEARCH)}\n onExpand={() => setCompact(false)}\n onSubmit={handleFinderSubmit}\n />\n </View>\n <View {...others} role=\"rates\" className={styles(style.container, others.className)}>\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n <View className={[style.wrapper, style.content]}>\n {response ? (\n <>\n <Filter\n dataSource={dataSource}\n value={filter}\n onChange={handleChangeFilter}\n onCurrency={handleChangeCurrency}\n />\n {dataSource.items.map(({ id, ...item }, index) => (\n <Item\n key={id || index}\n {...{ id, ...item, filter, occupation, selected, taxes: dataSource.taxes }}\n onChange={handleChange}\n onMoreInfo={() => setItemInfo(item)}\n onRateInfo={(rate) => setItemRateInfo(rate)}\n onViewUrl={(info) => setItemUrl(info)}\n />\n ))}\n </>\n ) : (\n <Skeleton />\n )}\n </View>\n\n <Footer {...{ dataSource, filter, occupation, selected, taxes: dataSource?.taxes }} onChange={handleChange} />\n </View>\n\n <ModalItemInfo {...itemInfo} visible={!!itemInfo} onClose={() => setItemInfo()} />\n <ModalItemRateInfo {...itemRateInfo} visible={!!itemRateInfo} onClose={() => setItemRateInfo()} />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n </>\n );\n};\n\nexport { Rates };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,GAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAC,uBAAA,CAAAJ,OAAA;AAEA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,KAAA,GAAAP,uBAAA,CAAAJ,OAAA;AACA,IAAAY,OAAA,GAAAC,sBAAA,CAAAb,OAAA;AACA,IAAAc,SAAA,GAAAd,OAAA;AACA,IAAAe,OAAA,GAAAf,OAAA;AACA,IAAAgB,SAAA,GAAAhB,OAAA;AAAqD,SAAAa,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAjB,wBAAAiB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAAA,SAAAY,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAL,CAAA,MAAAA,CAAA,GAAAM,SAAA,CAAAC,MAAA,EAAAP,CAAA,UAAAQ,MAAA,GAAAF,SAAA,CAAAN,CAAA,YAAAS,GAAA,IAAAD,MAAA,QAAAf,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAC,GAAA,KAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAJ,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAJ,SAAA;AAErD,MAAMK,KAAK,GAAGC,IAAA,IAAmB;EAAA,IAAlB;IAAE,GAAGC;EAAO,CAAC,GAAAD,IAAA;EAC1B,MAAM;IAAEE;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAM;IACJd,GAAG;IACHe,KAAK,EAAE;MAAEC,IAAI,EAAE;QAAEC;MAAS,CAAC,GAAG,CAAC,CAAC;MAAEC,QAAQ;MAAEC,MAAM,EAAE;QAAEC;MAAW,CAAC,GAAG,CAAC,CAAC;MAAEC,KAAK,GAAG,CAAC,CAAC;MAAEC,MAAM;MAAEC,OAAO;MAAEC;IAAU;EAClH,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAC,IAAI,CAAC;EAC5C,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAF,eAAQ,EAAC,CAAC;EAC9C,MAAM,CAACG,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAJ,eAAQ,EAACK,SAAS,CAAC;EACnD,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAP,eAAQ,EAAC;IAAEQ,YAAY,EAAEnB;EAAS,CAAC,CAAC;EAChE,MAAM,CAACoB,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAV,eAAQ,EAAC,CAAC;EAC1C,MAAM,CAACW,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAZ,eAAQ,EAAC,CAAC;EAClD,MAAM,CAACa,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAd,eAAQ,EAAC,CAAC;EACxC,MAAM,CAACe,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAhB,eAAQ,EAAC,CAAC;EACpD,MAAM,CAACiB,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAlB,eAAQ,EAAC,CAAC,CAAC,CAAC;EAE5C,MAAMmB,OAAO,GAAG,IAAIC,oBAAO,CAAC;IAAEC,OAAO,EAAEC,yBAAY;IAAEC,KAAK,EAAEC;EAAoB,CAAC,CAAC;EAElF,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI7B,SAAS,EAAE;MACb,MAAM8B,YAAY,GAAGP,OAAO,CAAC3D,GAAG,CAACoB,GAAG,CAACgB,SAAS,CAAC,CAAC;MAChD,IAAI8B,YAAY,EAAER,WAAW,CAAC,CAAC,CAAC,CAAC;IACnC;IAEA,MAAMS,YAAY,GAAGA,CAAA,KAAM5B,UAAU,CAAC,IAAI,CAAC;IAC3C6B,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEF,YAAY,CAAC;IAE/C,OAAO,MAAMC,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEH,YAAY,CAAC;IAC/D;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAF,gBAAS,EAAC,MAAM;IACdN,OAAO,CAAC/C,GAAG,CAACQ,GAAG,CAACgB,SAAS,CAAC,EAAEqB,QAAQ,CAAC;IACrC;EACF,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAAQ,gBAAS,EAAC,MAAM;IACdM,KAAK,CAACzC,QAAQ,CAAC;IACf;EACF,CAAC,EAAE,CAACA,QAAQ,EAAEI,MAAM,EAAEC,OAAO,CAAC,CAAC;EAE/B,MAAMoC,KAAK,GAAG,eAAAA,CAAOzC,QAAQ,EAA6D;IAAA,IAA3DkB,YAAY,GAAA/B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA4B,SAAA,GAAA5B,SAAA,MAAG6B,MAAM,CAACE,YAAY;IAAA,IAAEwB,MAAM,GAAAvD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA4B,SAAA,GAAA5B,SAAA,MAAGmB,SAAS;IACnFQ,WAAW,CAAC,IAAI,CAAC;IACjB,MAAM6B,UAAU,GAAG;MAAE,GAAGD,MAAM;MAAE1C,QAAQ;MAAEI,MAAM;MAAEC,OAAO;MAAEa;IAAa,CAAC;IACzEN,aAAa,CAAC,MAAMgC,sBAAY,CAAC1E,GAAG,CAACyE,UAAU,CAAC,CAACE,KAAK,CAACnB,gBAAgB,CAAC,CAAC;IACzEZ,WAAW,CAAC,KAAK,CAAC;EACpB,CAAC;EAED,MAAMxB,GAAG,GAAIqB,UAAU,OAAAmC,MAAA,CAAQC,wBAAiB,OAAAD,MAAA,CAAI,IAAAE,oBAAU,EAACC,IAAI,CAACC,SAAS,CAACvC,UAAU,CAAC,CAAC,CAAE;EAE5F,MAAMwC,YAAY,GAAG,SAAAA,CAAA,EAA4D;IAAA,IAA3D;MAAEC,MAAM,GAAG,CAAC;MAAEC,EAAE;MAAEC,UAAU,GAAG,KAAK;MAAE,GAAG5D;IAAO,CAAC,GAAAP,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA4B,SAAA,GAAA5B,SAAA,MAAG,CAAC,CAAC;IAC1E,MAAMoE,IAAI,GAAGD,UAAU,GAAG,CAAC,CAAC,GAAG;MAAE,GAAG3B;IAAS,CAAC;IAC9C,IAAIyB,MAAM,KAAK,CAAC,EAAE,OAAOG,IAAI,CAACF,EAAE,CAAC,CAAC,KAC7BE,IAAI,CAACF,EAAE,CAAC,GAAG;MAAED,MAAM;MAAE,GAAG1D;IAAO,CAAC;IAErCkC,WAAW,CAAC2B,IAAI,CAAC;EACnB,CAAC;EAED,MAAMC,oBAAoB,GAAG,MAAOC,YAAY,IAAK;IACnD,MAAMhB,KAAK,CAACgB,YAAY,CAAC;IACzB3E,GAAG,CAAC;MAAEkB,QAAQ,EAAEyD;IAAa,CAAC,CAAC;EACjC,CAAC;EAED,MAAMC,kBAAkB,GAAG,MAAOC,UAAU,IAAK;IAC/C1C,SAAS,CAAC0C,UAAU,CAAC;IACrB,IAAIA,UAAU,CAACzC,YAAY,KAAKF,MAAM,CAACE,YAAY,EAAE,MAAMuB,KAAK,CAACzC,QAAQ,EAAE2D,UAAU,CAACzC,YAAY,CAAC;EACrG,CAAC;EAED,MAAM0C,kBAAkB,GAAIC,MAAM,IAAK;IACrCpD,UAAU,CAAC,IAAI,CAAC;IAChBG,aAAa,CAACG,SAAS,CAAC;IACxB,MAAM2B,MAAM,GAAG,IAAAoB,wBAAe,EAAC;MAAE,GAAGxD,SAAS;MAAE,GAAGuD,MAAM;MAAE7D,QAAQ;MAAEI,MAAM;MAAED;IAAM,CAAC,CAAC;IAEpF4D,OAAO,CAACC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAAC,qBAAW,EAACvB,MAAM,CAAC,CAAC;IACjDD,KAAK,CAACzC,QAAQ,EAAEgB,MAAM,CAACE,YAAY,EAAEwB,MAAM,CAAC;EAC9C,CAAC;EAED,MAAMwB,QAAQ,GAAGvD,UAAU,KAAKI,SAAS;EAEzC,oBACEpE,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAAxH,MAAA,CAAAgB,OAAA,CAAAyG,QAAA,qBACEzH,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACzH,GAAA,CAAA2H,IAAI;IAACC,SAAS,EAAEnH,KAAK,CAAC8C;EAAO,gBAC5BtD,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAC5G,OAAA,CAAAgH,MAAM;IACLC,QAAQ,EAAE,KAAM;IAChBhE,OAAO,EAAEA,OAAQ;IACjBiE,IAAI,EAAE9E,SAAS,CAAC+E,YAAI,CAACC,aAAa,CAAE;IACpCC,QAAQ,EAAEA,CAAA,KAAMnE,UAAU,CAAC,KAAK,CAAE;IAClCoE,QAAQ,EAAEjB;EAAmB,CAC9B,CACG,CAAC,eACPjH,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACzH,GAAA,CAAA2H,IAAI,EAAAtF,QAAA,KAAKW,MAAM;IAAEoF,IAAI,EAAC,OAAO;IAACR,SAAS,EAAE,IAAAS,UAAM,EAAC5H,KAAK,CAAC6H,SAAS,EAAEtF,MAAM,CAAC4E,SAAS;EAAE,iBAClF3H,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACzH,GAAA,CAAAuI,QAAQ;IAACC,aAAa;IAACC,OAAO,EAAEtE,QAAQ,IAAI,CAACY,aAAc;IAAC6C,SAAS,EAAEnH,KAAK,CAACiI;EAAS,CAAE,CAAC,eAE1FzI,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACzH,GAAA,CAAA2H,IAAI;IAACC,SAAS,EAAE,CAACnH,KAAK,CAACkI,OAAO,EAAElI,KAAK,CAACmI,OAAO;EAAE,GAC7CpB,QAAQ,gBACPvH,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAAxH,MAAA,CAAAgB,OAAA,CAAAyG,QAAA,qBACEzH,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACnH,OAAA,CAAAuI,MAAM;IACL5E,UAAU,EAAEA,UAAW;IACvBd,KAAK,EAAEmB,MAAO;IACdwE,QAAQ,EAAE9B,kBAAmB;IAC7B+B,UAAU,EAAEjC;EAAqB,CAClC,CAAC,EACD7C,UAAU,CAAC+E,KAAK,CAACC,GAAG,CAAC,CAAAC,KAAA,EAAkBC,KAAK;IAAA,IAAtB;MAAExC,EAAE;MAAE,GAAGyC;IAAK,CAAC,GAAAF,KAAA;IAAA,oBACpCjJ,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACtH,WAAA,CAAAkJ,IAAI,EAAAhH,QAAA;MACHO,GAAG,EAAE+D,EAAE,IAAIwC,KAAM;MACXxC;IAAE,GAAKyC,IAAI;MAAE9E,MAAM;MAAEd,UAAU;MAAEyB,QAAQ;MAAEqE,KAAK,EAAErF,UAAU,CAACqF,KAAK;MACxER,QAAQ,EAAErC,YAAa;MACvB8C,UAAU,EAAEA,CAAA,KAAM7E,WAAW,CAAC0E,IAAI,CAAE;MACpCI,UAAU,EAAGC,IAAI,IAAK7E,eAAe,CAAC6E,IAAI,CAAE;MAC5CC,SAAS,EAAGC,IAAI,IAAK7E,UAAU,CAAC6E,IAAI;IAAE,EACvC,CAAC;EAAA,CACH,CACD,CAAC,gBAEH1J,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAC/G,OAAA,CAAAO,OAAQ,MAAE,CAET,CAAC,eAEPhB,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAClH,OAAA,CAAAqJ,MAAM;IAAO3F,UAAU;IAAEK,MAAM;IAAEd,UAAU;IAAEyB,QAAQ;IAAEqE,KAAK,EAAErF,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEqF,KAAK;IAAIR,QAAQ,EAAErC;EAAa,CAAE,CACzG,CAAC,eAEPxG,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACtH,WAAA,CAAA0J,aAAa,EAAAxH,QAAA,KAAKoC,QAAQ;IAAEgE,OAAO,EAAE,CAAC,CAAChE,QAAS;IAACqF,OAAO,EAAEA,CAAA,KAAMpF,WAAW,CAAC;EAAE,EAAE,CAAC,eAClFzE,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACtH,WAAA,CAAA4J,iBAAiB,EAAA1H,QAAA,KAAKsC,YAAY;IAAE8D,OAAO,EAAE,CAAC,CAAC9D,YAAa;IAACmF,OAAO,EAAEA,CAAA,KAAMlF,eAAe,CAAC;EAAE,EAAE,CAAC,eAClG3E,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACtH,WAAA,CAAA6J,YAAY,EAAA3H,QAAA,KAAKwC,OAAO;IAAE4D,OAAO,EAAE,CAAC,CAAC5D,OAAQ;IAACiF,OAAO,EAAEA,CAAA,KAAMhF,UAAU,CAAC;EAAE,EAAE,CAC7E,CAAC;AAEP,CAAC;AAACmF,OAAA,CAAAnH,KAAA,GAAAA,KAAA"}
@@ -5,12 +5,18 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.L10N = void 0;
7
7
  const L10N = exports.L10N = {
8
+ ACTION_HIDE_CART: {
9
+ id: 'finder.action.hide_cart'
10
+ },
8
11
  ACTION_NEXT: {
9
12
  id: 'finder.action.next'
10
13
  },
11
14
  ACTION_SEARCH: {
12
15
  id: 'common.action.search'
13
16
  },
17
+ ACTION_VIEW_CART: {
18
+ id: 'finder.action.view_cart'
19
+ },
14
20
  LABEL_CLUB_DISCOUNT: {
15
21
  id: 'finder.label.discount_club'
16
22
  },
@@ -20,12 +26,11 @@ const L10N = exports.L10N = {
20
26
  LABEL_CLUB_MEMBERS_EXCLUSIVE: {
21
27
  id: 'finder.label.club_members_exclusive'
22
28
  },
23
- LABEL_SELECTED_NUMBER_OPTIONS: {
24
- id: 'finder.label.selected_options',
25
- defaultMessage: 'Selected {number}.'
26
- },
27
29
  LABEL_SELECT_TYPE_ACCOMMODATION: {
28
30
  id: 'finder.label.select_type_accommodation'
31
+ },
32
+ LABEL_INCLUDES_TAXES_FEES: {
33
+ id: 'finder.label.includes_taxes_fees'
29
34
  }
30
35
  };
31
36
  //# sourceMappingURL=Rates.l10n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Rates.l10n.js","names":["L10N","exports","ACTION_NEXT","id","ACTION_SEARCH","LABEL_CLUB_DISCOUNT","LABEL_CLUB_BENEFITS","LABEL_CLUB_MEMBERS_EXCLUSIVE","LABEL_SELECTED_NUMBER_OPTIONS","defaultMessage","LABEL_SELECT_TYPE_ACCOMMODATION"],"sources":["../../../src/components/Rates/Rates.l10n.js"],"sourcesContent":["export const L10N = {\n ACTION_NEXT: { id: 'finder.action.next' },\n ACTION_SEARCH: { id: 'common.action.search' },\n\n LABEL_CLUB_DISCOUNT: { id: 'finder.label.discount_club' },\n LABEL_CLUB_BENEFITS: { id: 'finder.label.club_benefits' },\n LABEL_CLUB_MEMBERS_EXCLUSIVE: { id: 'finder.label.club_members_exclusive' },\n LABEL_SELECTED_NUMBER_OPTIONS: { id: 'finder.label.selected_options', defaultMessage: 'Selected {number}.' },\n LABEL_SELECT_TYPE_ACCOMMODATION: { id: 'finder.label.select_type_accommodation' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,WAAW,EAAE;IAAEC,EAAE,EAAE;EAAqB,CAAC;EACzCC,aAAa,EAAE;IAAED,EAAE,EAAE;EAAuB,CAAC;EAE7CE,mBAAmB,EAAE;IAAEF,EAAE,EAAE;EAA6B,CAAC;EACzDG,mBAAmB,EAAE;IAAEH,EAAE,EAAE;EAA6B,CAAC;EACzDI,4BAA4B,EAAE;IAAEJ,EAAE,EAAE;EAAsC,CAAC;EAC3EK,6BAA6B,EAAE;IAAEL,EAAE,EAAE,+BAA+B;IAAEM,cAAc,EAAE;EAAqB,CAAC;EAC5GC,+BAA+B,EAAE;IAAEP,EAAE,EAAE;EAAyC;AAClF,CAAC"}
1
+ {"version":3,"file":"Rates.l10n.js","names":["L10N","exports","ACTION_HIDE_CART","id","ACTION_NEXT","ACTION_SEARCH","ACTION_VIEW_CART","LABEL_CLUB_DISCOUNT","LABEL_CLUB_BENEFITS","LABEL_CLUB_MEMBERS_EXCLUSIVE","LABEL_SELECT_TYPE_ACCOMMODATION","LABEL_INCLUDES_TAXES_FEES"],"sources":["../../../src/components/Rates/Rates.l10n.js"],"sourcesContent":["export const L10N = {\n ACTION_HIDE_CART: { id: 'finder.action.hide_cart' },\n ACTION_NEXT: { id: 'finder.action.next' },\n ACTION_SEARCH: { id: 'common.action.search' },\n ACTION_VIEW_CART: { id: 'finder.action.view_cart' },\n\n LABEL_CLUB_DISCOUNT: { id: 'finder.label.discount_club' },\n LABEL_CLUB_BENEFITS: { id: 'finder.label.club_benefits' },\n LABEL_CLUB_MEMBERS_EXCLUSIVE: { id: 'finder.label.club_members_exclusive' },\n LABEL_SELECT_TYPE_ACCOMMODATION: { id: 'finder.label.select_type_accommodation' },\n LABEL_INCLUDES_TAXES_FEES: { id: 'finder.label.includes_taxes_fees' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,gBAAgB,EAAE;IAAEC,EAAE,EAAE;EAA0B,CAAC;EACnDC,WAAW,EAAE;IAAED,EAAE,EAAE;EAAqB,CAAC;EACzCE,aAAa,EAAE;IAAEF,EAAE,EAAE;EAAuB,CAAC;EAC7CG,gBAAgB,EAAE;IAAEH,EAAE,EAAE;EAA0B,CAAC;EAEnDI,mBAAmB,EAAE;IAAEJ,EAAE,EAAE;EAA6B,CAAC;EACzDK,mBAAmB,EAAE;IAAEL,EAAE,EAAE;EAA6B,CAAC;EACzDM,4BAA4B,EAAE;IAAEN,EAAE,EAAE;EAAsC,CAAC;EAC3EO,+BAA+B,EAAE;IAAEP,EAAE,EAAE;EAAyC,CAAC;EACjFQ,yBAAyB,EAAE;IAAER,EAAE,EAAE;EAAmC;AACtE,CAAC"}
@@ -122,6 +122,7 @@ body {
122
122
  transform: translateY(100%);
123
123
  transition: transform var(--mirai-ui-motion-expand) var(--mirai-ui-motion-easing);
124
124
  width: 100vw;
125
+ z-index: var(--mirai-ui-layer-M);
125
126
  }
126
127
 
127
128
  .footer.visible {
@@ -130,17 +131,15 @@ body {
130
131
 
131
132
  .footer .price {
132
133
  flex: 1;
133
- gap: var(--mirai-ui-space-XS);
134
+ gap: calc(var(--mirai-ui-space-XS) / 2);
134
135
  }
135
136
 
136
- .footer .line {
137
- display: flex;
138
- flex-direction: row;
139
- gap: calc(var(--mirai-ui-space-XS) / 2);
137
+ .footer .price .line {
138
+ gap: var(--mirai-ui-space-XS);
140
139
  }
141
140
 
142
141
  .footer .expanded {
143
- padding-bottom: var(--mirai-ui-space-M);
142
+ padding-bottom: var(--mirai-ui-space-S);
144
143
  margin-bottom: var(--mirai-ui-space-M);
145
144
  gap: calc(var(--mirai-ui-space-XS) / 2);
146
145
  box-shadow: inset 0 -1px 0 var(--mirai-ui-content-border);
@@ -150,7 +149,8 @@ body {
150
149
  background-color: var(--mirai-ui-content-background);
151
150
  border-radius: var(--mirai-ui-border-radius);
152
151
  gap: var(--mirai-ui-space-XS);
153
- padding: var(--mirai-ui-space-XS) var(--mirai-ui-space-XS) var(--mirai-ui-space-XS) var(--mirai-ui-space-S);
152
+ padding: calc(var(--mirai-ui-space-XS) / 2) var(--mirai-ui-space-XS) calc(var(--mirai-ui-space-XS) / 2)
153
+ var(--mirai-ui-space-XS);
154
154
  }
155
155
 
156
156
  .footer .item .amount {
@@ -195,6 +195,10 @@ body {
195
195
  padding: var(--mirai-ui-space-S);
196
196
  }
197
197
 
198
+ .footer .expanded {
199
+ padding-bottom: var(--mirai-ui-space-S);
200
+ }
201
+
198
202
  .filter {
199
203
  gap: var(--mirai-ui-space-S);
200
204
  }
@@ -217,4 +221,8 @@ body {
217
221
  .footer {
218
222
  padding: var(--mirai-ui-space-M);
219
223
  }
224
+
225
+ .footer .expanded {
226
+ padding-bottom: var(--mirai-ui-space-M);
227
+ }
220
228
  }