@mirai/core 0.3.60 → 0.3.61

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 (80) hide show
  1. package/build/components/Finder/helpers/getForwarderUrl.js +4 -2
  2. package/build/components/Finder/helpers/getForwarderUrl.js.map +1 -1
  3. package/build/components/Rates/Rates.Footer.js +65 -77
  4. package/build/components/Rates/Rates.Footer.js.map +1 -1
  5. package/build/components/Rates/{Rates.Filter.js → Rates.Header.js} +53 -80
  6. package/build/components/Rates/Rates.Header.js.map +1 -0
  7. package/build/components/Rates/Rates.RoomSelector.js +96 -0
  8. package/build/components/Rates/Rates.RoomSelector.js.map +1 -0
  9. package/build/components/Rates/Rates.Skeleton.js +116 -40
  10. package/build/components/Rates/Rates.Skeleton.js.map +1 -1
  11. package/build/components/Rates/Rates.constants.js +7 -1
  12. package/build/components/Rates/Rates.constants.js.map +1 -1
  13. package/build/components/Rates/Rates.js +90 -47
  14. package/build/components/Rates/Rates.js.map +1 -1
  15. package/build/components/Rates/Rates.l10n.js +16 -7
  16. package/build/components/Rates/Rates.l10n.js.map +1 -1
  17. package/build/components/Rates/Rates.module.css +149 -67
  18. package/build/components/Rates/components/Item/Item.Preview.js +46 -29
  19. package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
  20. package/build/components/Rates/components/Item/Item.Rates.js +112 -143
  21. package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
  22. package/build/components/Rates/components/Item/Item.Summary.js +141 -0
  23. package/build/components/Rates/components/Item/Item.Summary.js.map +1 -0
  24. package/build/components/Rates/components/Item/Item.js +67 -64
  25. package/build/components/Rates/components/Item/Item.js.map +1 -1
  26. package/build/components/Rates/components/Item/Item.l10n.js +22 -0
  27. package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
  28. package/build/components/Rates/components/Item/Item.module.css +80 -104
  29. package/build/components/Rates/components/Item/components/Amenities/Amenities.js +15 -9
  30. package/build/components/Rates/components/Item/components/Amenities/Amenities.js.map +1 -1
  31. package/build/components/Rates/components/Item/components/Amenities/Amenities.module.css +11 -3
  32. package/build/components/Rates/components/Item/components/Discount/Discount.js +14 -13
  33. package/build/components/Rates/components/Item/components/Discount/Discount.js.map +1 -1
  34. package/build/components/Rates/components/Item/components/Discount/Discount.module.css +4 -3
  35. package/build/components/Rates/components/Item/components/Features/Features.js +4 -10
  36. package/build/components/Rates/components/Item/components/Features/Features.js.map +1 -1
  37. package/build/components/Rates/components/Item/components/Features/Features.module.css +0 -5
  38. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +34 -6
  39. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
  40. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.module.css +7 -0
  41. package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.js +18 -9
  42. package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.js.map +1 -1
  43. package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.module.css +17 -1
  44. package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.module.css +1 -1
  45. package/build/components/Rates/components/Item/components/Option/Option.js +72 -0
  46. package/build/components/Rates/components/Item/components/Option/Option.js.map +1 -0
  47. package/build/components/Rates/components/Item/components/Option/Option.module.css +24 -0
  48. package/build/components/Rates/components/Item/components/Option/index.js +17 -0
  49. package/build/components/Rates/components/Item/components/Option/index.js.map +1 -0
  50. package/build/components/Rates/components/Item/components/index.js +11 -0
  51. package/build/components/Rates/components/Item/components/index.js.map +1 -1
  52. package/build/components/Rates/helpers/getForwarderUrl.js +23 -12
  53. package/build/components/Rates/helpers/getForwarderUrl.js.map +1 -1
  54. package/build/components/helpers/ICON.js +10 -2
  55. package/build/components/helpers/ICON.js.map +1 -1
  56. package/build/components/helpers/index.js +11 -0
  57. package/build/components/helpers/index.js.map +1 -1
  58. package/build/components/helpers/opacity.js +17 -0
  59. package/build/components/helpers/opacity.js.map +1 -0
  60. package/build/services/Rates/__tests__/__mocks__/rates-response-cancel-types.json +1662 -0
  61. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +296 -510
  62. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +895 -1795
  63. package/build/services/Rates/__tests__/__mocks__/rates-response.json +197 -369
  64. package/build/services/Rates/__tests__/__mocks__/rates-success-cancel-types.json +32481 -0
  65. package/build/services/Rates/constants.js +18 -1
  66. package/build/services/Rates/constants.js.map +1 -1
  67. package/build/services/Rates/get.js +41 -112
  68. package/build/services/Rates/get.js.map +1 -1
  69. package/build/services/Rates/helpers/getIncrements.js +69 -0
  70. package/build/services/Rates/helpers/getIncrements.js.map +1 -0
  71. package/build/services/Rates/helpers/index.js +22 -0
  72. package/build/services/Rates/helpers/index.js.map +1 -1
  73. package/build/services/Rates/helpers/parseBoards.js +156 -0
  74. package/build/services/Rates/helpers/parseBoards.js.map +1 -0
  75. package/build/services/Rates/helpers/parseExternalToken.js +24 -0
  76. package/build/services/Rates/helpers/parseExternalToken.js.map +1 -0
  77. package/package.json +1 -1
  78. package/public/App.module.css +5 -0
  79. package/public/themes/monalisa.theme.css +3 -0
  80. package/build/components/Rates/Rates.Filter.js.map +0 -1
@@ -29,7 +29,8 @@ const getForwarderUrl = function () {
29
29
  } = {},
30
30
  urlParams: {
31
31
  miraiId,
32
- type
32
+ type,
33
+ uid
33
34
  }
34
35
  } = {}
35
36
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -49,7 +50,8 @@ const getForwarderUrl = function () {
49
50
  miraiId,
50
51
  nights: (0, _locale.dateDiff)(dateCheckIn, dateCheckOut).days,
51
52
  parties: (0, _helpers.parseToParties)(occupation),
52
- type
53
+ type,
54
+ uid
53
55
  // ? TODO: Is this mandatory?
54
56
  // clientCodeStrictSearch: true
55
57
  // deviceType: "DESKTOP_TABLET"
@@ -1 +1 @@
1
- {"version":3,"file":"getForwarderUrl.js","names":["_locale","require","_helpers","getForwarderUrl","calendar","checkIn","checkOut","occupation","place","id","ids","value","promocode","clientCode","locale","DEFAULT_LOCALE","currency","DEFAULT_CURRENCY","forwarder","rates","url","store","hotel","origin","commissionCode","hsri","urlParams","miraiId","type","arguments","length","undefined","dateCheckIn","Date","parseDate","dateCheckOut","hotelId","params","checkin","dateFormat","format","chainSelectorValue","idtokenprovider","lang","split","nights","dateDiff","days","parties","parseToParties","concat","toUrlParams","exports"],"sources":["../../../../src/components/Finder/helpers/getForwarderUrl.js"],"sourcesContent":["import { dateDiff, dateFormat, DEFAULT_CURRENCY, DEFAULT_LOCALE, parseDate } from '@mirai/locale';\n\nimport { parseToParties, toUrlParams } from '../../helpers';\n\nexport const getForwarderUrl = ({\n calendar: [checkIn, checkOut] = [],\n occupation = [],\n place: { id: ids = [], value } = {},\n promocode: clientCode = '',\n locale = DEFAULT_LOCALE,\n currency = DEFAULT_CURRENCY,\n forwarder: { rates: url } = {},\n store: { hotel: { id } = {}, origin: { commissionCode: hsri = '' } = {}, urlParams: { miraiId, type } } = {},\n} = {}) => {\n const dateCheckIn = checkIn instanceof Date ? checkIn : parseDate(checkIn);\n const dateCheckOut = checkOut instanceof Date ? checkOut : parseDate(checkOut);\n const hotelId = ids.length === 1 ? ids[0] : id;\n\n const params = {\n checkin: dateFormat(dateCheckIn, { format: 'DD/MM/YYYY' }),\n chainSelectorValue: value,\n clientCode,\n currency,\n hsri,\n idtokenprovider: hotelId,\n lang: locale.split('-')[0],\n miraiId,\n nights: dateDiff(dateCheckIn, dateCheckOut).days,\n parties: parseToParties(occupation),\n type,\n // ? TODO: Is this mandatory?\n // clientCodeStrictSearch: true\n // deviceType: \"DESKTOP_TABLET\"\n // env: \"mario\"\n // home: \"https://www.hotel-moderno.com/\"\n };\n\n return `${url}${toUrlParams(params)}`;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAEO,MAAME,eAAe,GAAG,SAAAA,CAAA,EASpB;EAAA,IATqB;IAC9BC,QAAQ,EAAE,CAACC,OAAO,EAAEC,QAAQ,CAAC,GAAG,EAAE;IAClCC,UAAU,GAAG,EAAE;IACfC,KAAK,EAAE;MAAEC,EAAE,EAAEC,GAAG,GAAG,EAAE;MAAEC;IAAM,CAAC,GAAG,CAAC,CAAC;IACnCC,SAAS,EAAEC,UAAU,GAAG,EAAE;IAC1BC,MAAM,GAAGC,sBAAc;IACvBC,QAAQ,GAAGC,wBAAgB;IAC3BC,SAAS,EAAE;MAAEC,KAAK,EAAEC;IAAI,CAAC,GAAG,CAAC,CAAC;IAC9BC,KAAK,EAAE;MAAEC,KAAK,EAAE;QAAEb;MAAG,CAAC,GAAG,CAAC,CAAC;MAAEc,MAAM,EAAE;QAAEC,cAAc,EAAEC,IAAI,GAAG;MAAG,CAAC,GAAG,CAAC,CAAC;MAAEC,SAAS,EAAE;QAAEC,OAAO;QAAEC;MAAK;IAAE,CAAC,GAAG,CAAC;EAC7G,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACJ,MAAMG,WAAW,GAAG3B,OAAO,YAAY4B,IAAI,GAAG5B,OAAO,GAAG,IAAA6B,iBAAS,EAAC7B,OAAO,CAAC;EAC1E,MAAM8B,YAAY,GAAG7B,QAAQ,YAAY2B,IAAI,GAAG3B,QAAQ,GAAG,IAAA4B,iBAAS,EAAC5B,QAAQ,CAAC;EAC9E,MAAM8B,OAAO,GAAG1B,GAAG,CAACoB,MAAM,KAAK,CAAC,GAAGpB,GAAG,CAAC,CAAC,CAAC,GAAGD,EAAE;EAE9C,MAAM4B,MAAM,GAAG;IACbC,OAAO,EAAE,IAAAC,kBAAU,EAACP,WAAW,EAAE;MAAEQ,MAAM,EAAE;IAAa,CAAC,CAAC;IAC1DC,kBAAkB,EAAE9B,KAAK;IACzBE,UAAU;IACVG,QAAQ;IACRS,IAAI;IACJiB,eAAe,EAAEN,OAAO;IACxBO,IAAI,EAAE7B,MAAM,CAAC8B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1BjB,OAAO;IACPkB,MAAM,EAAE,IAAAC,gBAAQ,EAACd,WAAW,EAAEG,YAAY,CAAC,CAACY,IAAI;IAChDC,OAAO,EAAE,IAAAC,uBAAc,EAAC1C,UAAU,CAAC;IACnCqB;IACA;IACA;IACA;IACA;IACA;EACF,CAAC;EAED,UAAAsB,MAAA,CAAU9B,GAAG,EAAA8B,MAAA,CAAG,IAAAC,oBAAW,EAACd,MAAM,CAAC;AACrC,CAAC;AAACe,OAAA,CAAAjD,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"file":"getForwarderUrl.js","names":["_locale","require","_helpers","getForwarderUrl","calendar","checkIn","checkOut","occupation","place","id","ids","value","promocode","clientCode","locale","DEFAULT_LOCALE","currency","DEFAULT_CURRENCY","forwarder","rates","url","store","hotel","origin","commissionCode","hsri","urlParams","miraiId","type","uid","arguments","length","undefined","dateCheckIn","Date","parseDate","dateCheckOut","hotelId","params","checkin","dateFormat","format","chainSelectorValue","idtokenprovider","lang","split","nights","dateDiff","days","parties","parseToParties","concat","toUrlParams","exports"],"sources":["../../../../src/components/Finder/helpers/getForwarderUrl.js"],"sourcesContent":["import { dateDiff, dateFormat, DEFAULT_CURRENCY, DEFAULT_LOCALE, parseDate } from '@mirai/locale';\n\nimport { parseToParties, toUrlParams } from '../../helpers';\n\nexport const getForwarderUrl = ({\n calendar: [checkIn, checkOut] = [],\n occupation = [],\n place: { id: ids = [], value } = {},\n promocode: clientCode = '',\n locale = DEFAULT_LOCALE,\n currency = DEFAULT_CURRENCY,\n forwarder: { rates: url } = {},\n store: { hotel: { id } = {}, origin: { commissionCode: hsri = '' } = {}, urlParams: { miraiId, type, uid } } = {},\n} = {}) => {\n const dateCheckIn = checkIn instanceof Date ? checkIn : parseDate(checkIn);\n const dateCheckOut = checkOut instanceof Date ? checkOut : parseDate(checkOut);\n const hotelId = ids.length === 1 ? ids[0] : id;\n\n const params = {\n checkin: dateFormat(dateCheckIn, { format: 'DD/MM/YYYY' }),\n chainSelectorValue: value,\n clientCode,\n currency,\n hsri,\n idtokenprovider: hotelId,\n lang: locale.split('-')[0],\n miraiId,\n nights: dateDiff(dateCheckIn, dateCheckOut).days,\n parties: parseToParties(occupation),\n type,\n uid,\n // ? TODO: Is this mandatory?\n // clientCodeStrictSearch: true\n // deviceType: \"DESKTOP_TABLET\"\n // env: \"mario\"\n // home: \"https://www.hotel-moderno.com/\"\n };\n\n return `${url}${toUrlParams(params)}`;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAEO,MAAME,eAAe,GAAG,SAAAA,CAAA,EASpB;EAAA,IATqB;IAC9BC,QAAQ,EAAE,CAACC,OAAO,EAAEC,QAAQ,CAAC,GAAG,EAAE;IAClCC,UAAU,GAAG,EAAE;IACfC,KAAK,EAAE;MAAEC,EAAE,EAAEC,GAAG,GAAG,EAAE;MAAEC;IAAM,CAAC,GAAG,CAAC,CAAC;IACnCC,SAAS,EAAEC,UAAU,GAAG,EAAE;IAC1BC,MAAM,GAAGC,sBAAc;IACvBC,QAAQ,GAAGC,wBAAgB;IAC3BC,SAAS,EAAE;MAAEC,KAAK,EAAEC;IAAI,CAAC,GAAG,CAAC,CAAC;IAC9BC,KAAK,EAAE;MAAEC,KAAK,EAAE;QAAEb;MAAG,CAAC,GAAG,CAAC,CAAC;MAAEc,MAAM,EAAE;QAAEC,cAAc,EAAEC,IAAI,GAAG;MAAG,CAAC,GAAG,CAAC,CAAC;MAAEC,SAAS,EAAE;QAAEC,OAAO;QAAEC,IAAI;QAAEC;MAAI;IAAE,CAAC,GAAG,CAAC;EAClH,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACJ,MAAMG,WAAW,GAAG5B,OAAO,YAAY6B,IAAI,GAAG7B,OAAO,GAAG,IAAA8B,iBAAS,EAAC9B,OAAO,CAAC;EAC1E,MAAM+B,YAAY,GAAG9B,QAAQ,YAAY4B,IAAI,GAAG5B,QAAQ,GAAG,IAAA6B,iBAAS,EAAC7B,QAAQ,CAAC;EAC9E,MAAM+B,OAAO,GAAG3B,GAAG,CAACqB,MAAM,KAAK,CAAC,GAAGrB,GAAG,CAAC,CAAC,CAAC,GAAGD,EAAE;EAE9C,MAAM6B,MAAM,GAAG;IACbC,OAAO,EAAE,IAAAC,kBAAU,EAACP,WAAW,EAAE;MAAEQ,MAAM,EAAE;IAAa,CAAC,CAAC;IAC1DC,kBAAkB,EAAE/B,KAAK;IACzBE,UAAU;IACVG,QAAQ;IACRS,IAAI;IACJkB,eAAe,EAAEN,OAAO;IACxBO,IAAI,EAAE9B,MAAM,CAAC+B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1BlB,OAAO;IACPmB,MAAM,EAAE,IAAAC,gBAAQ,EAACd,WAAW,EAAEG,YAAY,CAAC,CAACY,IAAI;IAChDC,OAAO,EAAE,IAAAC,uBAAc,EAAC3C,UAAU,CAAC;IACnCqB,IAAI;IACJC;IACA;IACA;IACA;IACA;IACA;EACF,CAAC;EAED,UAAAsB,MAAA,CAAU/B,GAAG,EAAA+B,MAAA,CAAG,IAAAC,oBAAW,EAACd,MAAM,CAAC;AACrC,CAAC;AAACe,OAAA,CAAAlD,eAAA,GAAAA,eAAA"}
@@ -8,7 +8,7 @@ var _dataSources = require("@mirai/data-sources");
8
8
  var _locale = require("@mirai/locale");
9
9
  var _ui = require("@mirai/ui");
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _react = _interopRequireWildcard(require("react"));
11
+ var _react = _interopRequireDefault(require("react"));
12
12
  var _helpers = require("./helpers");
13
13
  var _Rates = require("./Rates.l10n");
14
14
  var style = _interopRequireWildcard(require("./Rates.module.css"));
@@ -18,15 +18,15 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
  const Footer = _ref => {
20
20
  let {
21
+ cart = [],
21
22
  dataSource: {
22
- items = []
23
+ taxes
23
24
  } = {},
24
25
  filter: {
25
26
  clubDiscount = false
26
27
  } = {},
28
+ multiRoom = false,
27
29
  occupation = [],
28
- selected = {},
29
- taxes,
30
30
  onChange = () => {}
31
31
  } = _ref;
32
32
  const {
@@ -42,124 +42,112 @@ const Footer = _ref => {
42
42
  urlParams
43
43
  } = {}
44
44
  } = (0, _dataSources.useStore)();
45
- const [expanded, setExpanded] = (0, _react.useState)(false);
46
- (0, _react.useEffect)(() => Object.keys(selected).length === 0 && setExpanded(false), [selected]);
47
45
  const handlePress = () => {
48
46
  document.location.href = (0, _helpers.getForwarderUrl)({
47
+ cart,
49
48
  clubDiscount,
50
49
  currency,
51
50
  forwarder,
52
- selected,
53
51
  urlParams
54
52
  });
55
53
  };
56
-
57
- // ! Should know if didnt expire the storage
58
- const {
59
- length: options
60
- } = Object.keys(selected);
61
- const value = Object.values(selected).reduce((value, _ref2) => {
54
+ const items = cart.filter(item => item !== undefined);
55
+ const totalPrice = cart.reduce(function (value) {
62
56
  let {
63
- amount,
64
57
  price
65
- } = _ref2;
66
- return value + amount * price;
58
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
59
+ return value + price;
67
60
  }, 0);
68
- const rates = items.map(function () {
69
- let {
70
- rates = [],
71
- name: title
72
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
73
- return rates.map(function () {
74
- let rate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
75
- return {
76
- ...rate,
77
- title
78
- };
79
- });
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;
61
+ const valid = !multiRoom || items.length === occupation.length;
89
62
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
90
- className: (0, _ui.styles)(style.footer, options && style.visible)
91
- }, (expanded || soloRoom) && /*#__PURE__*/_react.default.createElement(_ui.View, {
92
- className: [style.wrapper, style.expanded],
63
+ className: (0, _ui.styles)(style.footer,
64
+ // ((!multiRoom && items.length) || (multiRoom && items.length === occupation.length)) && style.visible,
65
+ items.length && style.visible)
66
+ }, /*#__PURE__*/_react.default.createElement(_ui.View, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
67
+ className: style.wrapper,
93
68
  wide: true
94
- }, Object.entries(selected).map(_ref3 => {
95
- let [id, {
96
- amount,
97
- price
98
- }] = _ref3;
99
- const {
69
+ }, items.map(function () {
70
+ let {
71
+ amount = 1,
72
+ id,
100
73
  name,
101
- title
102
- } = rates.find(rate => rate.id === id);
74
+ price,
75
+ roomName
76
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
77
+ let index = arguments.length > 1 ? arguments[1] : undefined;
103
78
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
104
79
  row: true,
105
80
  key: id,
106
- className: style.item
107
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
81
+ className: style.cartItem
82
+ }, multiRoom && /*#__PURE__*/_react.default.createElement(_ui.Text, {
108
83
  bold: true,
109
- small: true,
110
- className: style.amount
111
- }, "".concat(amount, "x")), /*#__PURE__*/_react.default.createElement(_ui.Text, {
112
- small: true,
113
- className: style.description
114
- }, "".concat(title, " (").concat(name, ")")), /*#__PURE__*/_react.default.createElement(_ui.Text, {
84
+ small: !isMobile,
85
+ tiny: isMobile,
86
+ upperCase: true,
87
+ className: style.room
88
+ }, "Room ".concat(index + 1)), /*#__PURE__*/_react.default.createElement(_ui.Text, {
115
89
  bold: true,
90
+ action: !isMobile,
91
+ small: isMobile,
92
+ className: style.description
93
+ }, "".concat(roomName, " "), /*#__PURE__*/_react.default.createElement(_ui.Text, {
94
+ lighten: true,
116
95
  small: true
96
+ }, "| ".concat(name))), /*#__PURE__*/_react.default.createElement(_ui.Text, {
97
+ bold: true,
98
+ action: !isMobile,
99
+ small: isMobile
117
100
  }, (0, _locale.currencyFormat)({
118
101
  currency,
119
102
  value: amount * price
120
- })), /*#__PURE__*/_react.default.createElement(_ui.Button, {
121
- transparent: true,
103
+ })), !multiRoom && /*#__PURE__*/_react.default.createElement(_ui.Button, {
122
104
  small: true,
123
105
  squared: true,
124
- onPress: () => onChange({
125
- id,
126
- amount: 0
127
- })
106
+ transparent: true,
107
+ onPress: () => onChange(undefined, index),
108
+ className: style.buttonClose
128
109
  }, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
129
110
  value: _helpers2.ICON.CLOSE
130
111
  })));
131
- })), /*#__PURE__*/_react.default.createElement(_ui.View, {
112
+ }))), /*#__PURE__*/_react.default.createElement(_ui.View, {
132
113
  row: true,
133
- className: style.wrapper
114
+ className: [style.wrapper, style.summary]
134
115
  }, /*#__PURE__*/_react.default.createElement(_ui.View, {
135
- className: style.price
136
- }, /*#__PURE__*/_react.default.createElement(_ui.View, {
137
- row: true,
138
- wide: true,
139
- className: style.line
116
+ className: style.totalPrice
140
117
  }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
141
118
  bold: true,
142
119
  headline: true,
143
- level: 2
120
+ level: isMobile ? 3 : 2
144
121
  }, (0, _locale.currencyFormat)({
145
122
  currency,
146
- value
147
- })), isMobile && /*#__PURE__*/_react.default.createElement(ViewCart, null)), /*#__PURE__*/_react.default.createElement(_ui.Text, {
123
+ value: totalPrice
124
+ })), /*#__PURE__*/_react.default.createElement(_ui.Text, {
148
125
  lighten: true,
149
126
  small: !isMobile || !taxes,
150
127
  tiny: isMobile
151
- }, taxes || translate(_Rates.L10N.LABEL_INCLUDES_TAXES_FEES))), !isMobile && /*#__PURE__*/_react.default.createElement(ViewCart, null), /*#__PURE__*/_react.default.createElement(_ui.Button, {
128
+ }, taxes || translate(_Rates.L10N.LABEL_INCLUDES_TAXES_FEES))), /*#__PURE__*/_react.default.createElement(_ui.View, {
129
+ row: !isMobile,
130
+ className: style.buttons
131
+ }, !isMobile && valid && /*#__PURE__*/_react.default.createElement(_ui.Action, null, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
132
+ value: _helpers2.ICON.ADD_EXTRAS
133
+ }), "!Add Extras"), /*#__PURE__*/_react.default.createElement(_ui.Button, {
134
+ disabled: !valid,
152
135
  large: !isMobile,
136
+ wide: isMobile,
153
137
  onPress: handlePress
154
- }, translate(_Rates.L10N.ACTION_NEXT))));
138
+ }, translate(_Rates.L10N.ACTION_RESERVE)))));
155
139
  };
156
140
  exports.Footer = Footer;
157
141
  Footer.propTypes = {
142
+ cart: _propTypes.default.arrayOf(_propTypes.default.shape({})),
158
143
  dataSource: _propTypes.default.shape({}),
159
144
  filter: _propTypes.default.shape({}),
160
- occupation: _propTypes.default.arrayOf(_propTypes.default.array),
161
- selected: _propTypes.default.shape({}),
162
- taxes: _propTypes.default.string,
145
+ multiRoom: _propTypes.default.bool,
146
+ occupation: _propTypes.default.arrayOf(_propTypes.default.arrayOf(_propTypes.default.shape({
147
+ ages: _propTypes.default.arrayOf(_propTypes.default.number),
148
+ amount: _propTypes.default.number,
149
+ type: _propTypes.default.number
150
+ }))),
163
151
  onChange: _propTypes.default.func
164
152
  };
165
153
  //# 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","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","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 <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\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
+ {"version":3,"file":"Rates.Footer.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_helpers","_Rates","style","_interopRequireWildcard","_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","cart","dataSource","taxes","filter","clubDiscount","multiRoom","occupation","onChange","isMobile","useDevice","translate","useLocale","value","currency","forwarder","urlParams","useStore","handlePress","document","location","href","getForwarderUrl","items","item","undefined","totalPrice","reduce","price","arguments","length","valid","createElement","View","className","styles","footer","visible","wrapper","wide","map","amount","id","name","roomName","index","row","key","cartItem","Text","bold","small","tiny","upperCase","room","concat","action","description","lighten","currencyFormat","Button","squared","transparent","onPress","buttonClose","Icon","ICON","CLOSE","summary","headline","level","L10N","LABEL_INCLUDES_TAXES_FEES","buttons","Action","ADD_EXTRAS","disabled","large","ACTION_RESERVE","exports","propTypes","PropTypes","arrayOf","shape","bool","ages","number","type","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 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 cart = [],\n dataSource: { taxes } = {},\n filter: { clubDiscount = false } = {},\n multiRoom = false,\n occupation = [],\n onChange = () => {},\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: { currency, forwarder, urlParams } = {} } = useStore();\n\n const handlePress = () => {\n document.location.href = getForwarderUrl({ cart, clubDiscount, currency, forwarder, urlParams });\n };\n\n const items = cart.filter((item) => item !== undefined);\n const totalPrice = cart.reduce((value, { price } = {}) => value + price, 0);\n const valid = !multiRoom || items.length === occupation.length;\n\n return (\n <View\n className={styles(\n style.footer,\n // ((!multiRoom && items.length) || (multiRoom && items.length === occupation.length)) && style.visible,\n items.length && style.visible,\n )}\n >\n <View>\n <View className={style.wrapper} wide>\n {items.map(({ amount = 1, id, name, price, roomName } = {}, index) => {\n return (\n <View row key={id} className={style.cartItem}>\n {multiRoom && (\n <Text bold small={!isMobile} tiny={isMobile} upperCase className={style.room}>\n {`Room ${index + 1}`}\n </Text>\n )}\n\n <Text bold action={!isMobile} small={isMobile} className={style.description}>\n {`${roomName} `}\n <Text lighten small>{`| ${name}`}</Text>\n </Text>\n\n <Text bold action={!isMobile} small={isMobile}>\n {currencyFormat({ currency, value: amount * price })}\n </Text>\n\n {!multiRoom && (\n <Button\n small\n squared\n transparent\n onPress={() => onChange(undefined, index)}\n className={style.buttonClose}\n >\n <Icon value={ICON.CLOSE} />\n </Button>\n )}\n </View>\n );\n })}\n </View>\n </View>\n\n <View row className={[style.wrapper, style.summary]}>\n <View className={style.totalPrice}>\n <Text bold headline level={isMobile ? 3 : 2}>\n {currencyFormat({ currency, value: totalPrice })}\n </Text>\n\n <Text lighten small={!isMobile || !taxes} tiny={isMobile}>\n {taxes || translate(L10N.LABEL_INCLUDES_TAXES_FEES)}\n </Text>\n </View>\n\n <View row={!isMobile} className={style.buttons}>\n {!isMobile && valid && (\n <Action>\n <Icon value={ICON.ADD_EXTRAS} />\n !Add Extras\n </Action>\n )}\n\n <Button disabled={!valid} large={!isMobile} wide={isMobile} onPress={handlePress}>\n {translate(L10N.ACTION_RESERVE)}\n </Button>\n </View>\n </View>\n </View>\n );\n};\n\nFooter.propTypes = {\n cart: PropTypes.arrayOf(PropTypes.shape({})),\n dataSource: PropTypes.shape({}),\n filter: PropTypes.shape({}),\n multiRoom: PropTypes.bool,\n occupation: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n onChange: PropTypes.func,\n};\n\nexport { Footer };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,GAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAD,sBAAA,CAAAJ,OAAA;AAEA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,KAAA,GAAAC,uBAAA,CAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AAAkC,SAAAW,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,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,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,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAhB,uBAAA4B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAElC,MAAMC,MAAM,GAAGC,IAAA,IAOT;EAAA,IAPU;IACdC,IAAI,GAAG,EAAE;IACTC,UAAU,EAAE;MAAEC;IAAM,CAAC,GAAG,CAAC,CAAC;IAC1BC,MAAM,EAAE;MAAEC,YAAY,GAAG;IAAM,CAAC,GAAG,CAAC,CAAC;IACrCC,SAAS,GAAG,KAAK;IACjBC,UAAU,GAAG,EAAE;IACfC,QAAQ,GAAGA,CAAA,KAAM,CAAC;EACpB,CAAC,GAAAR,IAAA;EACC,MAAM;IAAES;EAAS,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EAChC,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAM;IAAEC,KAAK,EAAE;MAAEC,QAAQ;MAAEC,SAAS;MAAEC;IAAU,CAAC,GAAG,CAAC;EAAE,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAErE,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxBC,QAAQ,CAACC,QAAQ,CAACC,IAAI,GAAG,IAAAC,wBAAe,EAAC;MAAErB,IAAI;MAAEI,YAAY;MAAES,QAAQ;MAAEC,SAAS;MAAEC;IAAU,CAAC,CAAC;EAClG,CAAC;EAED,MAAMO,KAAK,GAAGtB,IAAI,CAACG,MAAM,CAAEoB,IAAI,IAAKA,IAAI,KAAKC,SAAS,CAAC;EACvD,MAAMC,UAAU,GAAGzB,IAAI,CAAC0B,MAAM,CAAC,UAACd,KAAK;IAAA,IAAE;MAAEe;IAAM,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;IAAA,OAAKhB,KAAK,GAAGe,KAAK;EAAA,GAAE,CAAC,CAAC;EAC3E,MAAMG,KAAK,GAAG,CAACzB,SAAS,IAAIiB,KAAK,CAACO,MAAM,KAAKvB,UAAU,CAACuB,MAAM;EAE9D,oBACE3D,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiE,IAAI;IACHC,SAAS,EAAE,IAAAC,UAAM,EACf7D,KAAK,CAAC8D,MAAM;IACZ;IACAb,KAAK,CAACO,MAAM,IAAIxD,KAAK,CAAC+D,OACxB;EAAE,gBAEFlE,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiE,IAAI,qBACH9D,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiE,IAAI;IAACC,SAAS,EAAE5D,KAAK,CAACgE,OAAQ;IAACC,IAAI;EAAA,GACjChB,KAAK,CAACiB,GAAG,CAAC,YAA2D;IAAA,IAA1D;MAAEC,MAAM,GAAG,CAAC;MAAEC,EAAE;MAAEC,IAAI;MAAEf,KAAK;MAAEgB;IAAS,CAAC,GAAAf,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,CAAC,CAAC;IAAA,IAAEgB,KAAK,GAAAhB,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAJ,SAAA;IAC/D,oBACEtD,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiE,IAAI;MAACa,GAAG;MAACC,GAAG,EAAEL,EAAG;MAACR,SAAS,EAAE5D,KAAK,CAAC0E;IAAS,GAC1C1C,SAAS,iBACRnC,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiF,IAAI;MAACC,IAAI;MAACC,KAAK,EAAE,CAAC1C,QAAS;MAAC2C,IAAI,EAAE3C,QAAS;MAAC4C,SAAS;MAACnB,SAAS,EAAE5D,KAAK,CAACgF;IAAK,WAAAC,MAAA,CAClEV,KAAK,GAAG,CAAC,CACd,CACP,eAED1E,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiF,IAAI;MAACC,IAAI;MAACM,MAAM,EAAE,CAAC/C,QAAS;MAAC0C,KAAK,EAAE1C,QAAS;MAACyB,SAAS,EAAE5D,KAAK,CAACmF;IAAY,MAAAF,MAAA,CACtEX,QAAQ,qBACZzE,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiF,IAAI;MAACS,OAAO;MAACP,KAAK;IAAA,QAAAI,MAAA,CAAOZ,IAAI,CAAS,CACnC,CAAC,eAEPxE,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiF,IAAI;MAACC,IAAI;MAACM,MAAM,EAAE,CAAC/C,QAAS;MAAC0C,KAAK,EAAE1C;IAAS,GAC3C,IAAAkD,sBAAc,EAAC;MAAE7C,QAAQ;MAAED,KAAK,EAAE4B,MAAM,GAAGb;IAAM,CAAC,CAC/C,CAAC,EAEN,CAACtB,SAAS,iBACTnC,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAA4F,MAAM;MACLT,KAAK;MACLU,OAAO;MACPC,WAAW;MACXC,OAAO,EAAEA,CAAA,KAAMvD,QAAQ,CAACiB,SAAS,EAAEoB,KAAK,CAAE;MAC1CX,SAAS,EAAE5D,KAAK,CAAC0F;IAAY,gBAE7B7F,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiG,IAAI;MAACpD,KAAK,EAAEqD,cAAI,CAACC;IAAM,CAAE,CACpB,CAEN,CAAC;EAEX,CAAC,CACG,CACF,CAAC,eAEPhG,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiE,IAAI;IAACa,GAAG;IAACZ,SAAS,EAAE,CAAC5D,KAAK,CAACgE,OAAO,EAAEhE,KAAK,CAAC8F,OAAO;EAAE,gBAClDjG,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiE,IAAI;IAACC,SAAS,EAAE5D,KAAK,CAACoD;EAAW,gBAChCvD,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiF,IAAI;IAACC,IAAI;IAACmB,QAAQ;IAACC,KAAK,EAAE7D,QAAQ,GAAG,CAAC,GAAG;EAAE,GACzC,IAAAkD,sBAAc,EAAC;IAAE7C,QAAQ;IAAED,KAAK,EAAEa;EAAW,CAAC,CAC3C,CAAC,eAEPvD,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiF,IAAI;IAACS,OAAO;IAACP,KAAK,EAAE,CAAC1C,QAAQ,IAAI,CAACN,KAAM;IAACiD,IAAI,EAAE3C;EAAS,GACtDN,KAAK,IAAIQ,SAAS,CAAC4D,WAAI,CAACC,yBAAyB,CAC9C,CACF,CAAC,eAEPrG,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiE,IAAI;IAACa,GAAG,EAAE,CAACrC,QAAS;IAACyB,SAAS,EAAE5D,KAAK,CAACmG;EAAQ,GAC5C,CAAChE,QAAQ,IAAIsB,KAAK,iBACjB5D,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAA0G,MAAM,qBACLvG,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAAiG,IAAI;IAACpD,KAAK,EAAEqD,cAAI,CAACS;EAAW,CAAE,CAAC,eAE1B,CACT,eAEDxG,MAAA,CAAAY,OAAA,CAAAiD,aAAA,CAAChE,GAAA,CAAA4F,MAAM;IAACgB,QAAQ,EAAE,CAAC7C,KAAM;IAAC8C,KAAK,EAAE,CAACpE,QAAS;IAAC8B,IAAI,EAAE9B,QAAS;IAACsD,OAAO,EAAE7C;EAAY,GAC9EP,SAAS,CAAC4D,WAAI,CAACO,cAAc,CACxB,CACJ,CACF,CACF,CAAC;AAEX,CAAC;AAACC,OAAA,CAAAhF,MAAA,GAAAA,MAAA;AAEFA,MAAM,CAACiF,SAAS,GAAG;EACjB/E,IAAI,EAAEgF,kBAAS,CAACC,OAAO,CAACD,kBAAS,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EAC5CjF,UAAU,EAAE+E,kBAAS,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC;EAC/B/E,MAAM,EAAE6E,kBAAS,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC;EAC3B7E,SAAS,EAAE2E,kBAAS,CAACG,IAAI;EACzB7E,UAAU,EAAE0E,kBAAS,CAACC,OAAO,CAC3BD,kBAAS,CAACC,OAAO,CACfD,kBAAS,CAACE,KAAK,CAAC;IACdE,IAAI,EAAEJ,kBAAS,CAACC,OAAO,CAACD,kBAAS,CAACK,MAAM,CAAC;IACzC7C,MAAM,EAAEwC,kBAAS,CAACK,MAAM;IACxBC,IAAI,EAAEN,kBAAS,CAACK;EAClB,CAAC,CACH,CACF,CAAC;EACD9E,QAAQ,EAAEyE,kBAAS,CAACO;AACtB,CAAC"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Filter = void 0;
6
+ exports.Header = void 0;
7
7
  var _dataSources = require("@mirai/data-sources");
8
8
  var _locale = require("@mirai/locale");
9
9
  var _ui = require("@mirai/ui");
@@ -11,17 +11,20 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _react = _interopRequireDefault(require("react"));
12
12
  var _Rates = require("./Rates.l10n");
13
13
  var style = _interopRequireWildcard(require("./Rates.module.css"));
14
+ var _helpers = require("../helpers");
14
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
- const Filter = _ref => {
18
+ const Header = _ref => {
18
19
  let {
19
20
  dataSource: {
20
- items = []
21
+ clubConditions
21
22
  } = {},
23
+ children,
22
24
  value = {},
23
25
  onChange = () => {},
24
- onCurrency = () => {}
26
+ onCurrency = () => {},
27
+ ...others
25
28
  } = _ref;
26
29
  const {
27
30
  isMobile
@@ -41,89 +44,33 @@ const Filter = _ref => {
41
44
  } = (0, _dataSources.useStore)();
42
45
  const handleChange = function () {
43
46
  let {
44
- board,
45
47
  clubDiscount
46
48
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
47
49
  const next = {
48
50
  ...value
49
51
  };
50
- if (board !== undefined) next.board = value.board === board ? undefined : board;else if (clubDiscount !== undefined) next.clubDiscount = clubDiscount;
52
+ if (clubDiscount !== undefined) next.clubDiscount = clubDiscount;
51
53
  onChange(next);
52
54
  };
53
- const Boards = () => {
54
- const {
55
- board: selectedBoard
56
- } = value;
57
- return isMobile || boards.length > 3 ? /*#__PURE__*/_react.default.createElement(_ui.InputSelect, {
58
- name: "boards",
59
- emptyOption: translate(_Rates.L10N.LABEL_SELECT_TYPE_ACCOMMODATION),
60
- options: boards,
61
- value: selectedBoard,
62
- onChange: board => handleChange({
63
- board
64
- }),
65
- className: style.input
66
- }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, boards.map(board => /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
67
- key: board,
68
- onPress: () => handleChange({
69
- board
70
- }),
71
- className: [style.tag, style.pressable, board === selectedBoard && style.active]
72
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
73
- action: true,
74
- bold: board === selectedBoard
75
- }, board))));
76
- };
77
- const Currencies = () => /*#__PURE__*/_react.default.createElement(_ui.View, {
78
- style: {
79
- position: 'relative'
80
- }
81
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
82
- className: style.currencyValue
83
- }, currency), /*#__PURE__*/_react.default.createElement(_ui.InputSelect, {
84
- name: "currency",
85
- options: _locale.CURRENCIES.map(currency => "".concat(currency, " - ").concat(new Intl.DisplayNames(locale, {
86
- type: 'currency'
87
- }).of(currency))),
88
- values: _locale.CURRENCIES,
89
- value: currency,
90
- onChange: onCurrency,
91
- className: [style.input, style.selectCurrencies]
92
- }));
93
55
  const {
94
56
  clubDiscount = false
95
57
  } = value;
96
- const boards = [...new Set(items.map(_ref2 => {
97
- let {
98
- rates = []
99
- } = _ref2;
100
- return rates.map(_ref3 => {
101
- let {
102
- boardName: name
103
- } = _ref3;
104
- return name;
105
- });
106
- }).flat())];
107
- const hasBoards = boards.length >= 2;
58
+ const {
59
+ contentBackground
60
+ } = _ui.Theme.get();
108
61
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
109
- row: !isMobile,
110
- className: style.filter
111
- }, /*#__PURE__*/_react.default.createElement(_ui.View, {
112
- row: true,
113
- className: style.fields
114
- }, hasBoards && /*#__PURE__*/_react.default.createElement(Boards, null), isMobile && hasBoards && /*#__PURE__*/_react.default.createElement(Currencies, null)), /*#__PURE__*/_react.default.createElement(_ui.View, {
115
62
  row: true,
116
- className: style.fields
117
- }, discount !== undefined && /*#__PURE__*/_react.default.createElement(_ui.View, {
63
+ className: (0, _ui.styles)(style.header, !isMobile && others.className),
64
+ style: {
65
+ backgroundColor: (0, _helpers.opacity)(contentBackground, 0.66)
66
+ }
67
+ }, children, discount !== undefined && /*#__PURE__*/_react.default.createElement(_ui.View, {
118
68
  row: true,
119
69
  wide: isMobile,
120
- className: [style.tag, clubDiscount && style.active]
121
- }, /*#__PURE__*/_react.default.createElement(_ui.View, {
122
- row: true,
123
- className: style.clubDiscount
70
+ className: [style.tag, clubDiscount && style.highlight]
124
71
  }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
125
72
  action: true,
126
- bold: clubDiscount
73
+ bold: true
127
74
  }, translate(_Rates.L10N.LABEL_CLUB_DISCOUNT)), /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
128
75
  pressable: true,
129
76
  Template: () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Text, {
@@ -131,22 +78,49 @@ const Filter = _ref => {
131
78
  small: true
132
79
  }, translate(_Rates.L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE, {
133
80
  club: name
134
- })), /*#__PURE__*/_react.default.createElement(_ui.Text, {
81
+ })), clubConditions ? /*#__PURE__*/_react.default.createElement(_ui.Text, {
135
82
  small: true
136
- }, translate(_Rates.L10N.LABEL_CLUB_BENEFITS)))
83
+ }, translate(_Rates.L10N.LABEL_CLUB_CONDITIONS, {
84
+ conditions: /*#__PURE__*/_react.default.createElement(_ui.Action, {
85
+ href: clubConditions,
86
+ inline: true,
87
+ target: "_blank",
88
+ className: style.action
89
+ }, translate(_Rates.L10N.ACTION_CLUB_VIEW_CONDITIONS))
90
+ })) : /*#__PURE__*/_react.default.createElement(_ui.Text, {
91
+ small: true
92
+ }, translate(_Rates.L10N.LABEL_CLUB_BENEFITS))),
93
+ className: style.tooltip
137
94
  }, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
138
- value: _ui.ICON.INFO
139
- }))), /*#__PURE__*/_react.default.createElement(_ui.Switch, {
95
+ value: _helpers.ICON.INFO
96
+ })), /*#__PURE__*/_react.default.createElement(_ui.Switch, {
140
97
  checked: clubDiscount,
141
98
  name: "clubDiscount",
142
99
  onChange: nextValue => handleChange({
143
100
  clubDiscount: nextValue
144
101
  }),
145
102
  className: style.input
146
- })), (!isMobile || !hasBoards) && /*#__PURE__*/_react.default.createElement(Currencies, null)));
103
+ })), /*#__PURE__*/_react.default.createElement(_ui.View, {
104
+ style: {
105
+ position: 'relative'
106
+ }
107
+ }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
108
+ className: style.currencyValue
109
+ }, currency), /*#__PURE__*/_react.default.createElement(_ui.InputSelect, {
110
+ name: "currency",
111
+ options: _locale.CURRENCIES.map(currency => "".concat(currency, " - ").concat(new Intl.DisplayNames(locale, {
112
+ type: 'currency'
113
+ }).of(currency))),
114
+ values: _locale.CURRENCIES,
115
+ value: currency,
116
+ onChange: onCurrency,
117
+ className: [style.input, style.selectCurrencies]
118
+ })));
147
119
  };
148
- exports.Filter = Filter;
149
- Filter.propTypes = {
120
+ exports.Header = Header;
121
+ Header.displayName = 'Mirai:Core:Rates.Header';
122
+ Header.propTypes = {
123
+ children: _propTypes.default.node,
150
124
  dataSource: _propTypes.default.shape({}),
151
125
  value: _propTypes.default.shape({
152
126
  board: _propTypes.default.string,
@@ -155,5 +129,4 @@ Filter.propTypes = {
155
129
  onChange: _propTypes.default.func,
156
130
  onCurrency: _propTypes.default.func
157
131
  };
158
- Filter.displayName = 'Mirai:Core:Rates.Filter';
159
- //# sourceMappingURL=Rates.Filter.js.map
132
+ //# sourceMappingURL=Rates.Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rates.Header.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_Rates","style","_interopRequireWildcard","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Header","_ref","dataSource","clubConditions","children","value","onChange","onCurrency","others","isMobile","useDevice","translate","useLocale","club","discount","name","currency","locale","useStore","handleChange","clubDiscount","arguments","length","undefined","next","contentBackground","Theme","createElement","View","row","className","styles","header","backgroundColor","opacity","wide","tag","highlight","Text","action","bold","L10N","LABEL_CLUB_DISCOUNT","Tooltip","pressable","Template","Fragment","small","LABEL_CLUB_MEMBERS_EXCLUSIVE","LABEL_CLUB_CONDITIONS","conditions","Action","href","inline","target","ACTION_CLUB_VIEW_CONDITIONS","LABEL_CLUB_BENEFITS","tooltip","Icon","ICON","INFO","Switch","checked","nextValue","input","position","currencyValue","InputSelect","options","CURRENCIES","map","concat","Intl","DisplayNames","type","of","values","selectCurrencies","exports","displayName","propTypes","PropTypes","node","shape","board","string","bool","func"],"sources":["../../../src/components/Rates/Rates.Header.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { CURRENCIES, useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Action, Icon, InputSelect, styles, Switch, Text, Theme, Tooltip, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { ICON, opacity } from '../helpers';\n\nconst Header = ({\n dataSource: { clubConditions } = {},\n children,\n value = {},\n onChange = () => {},\n onCurrency = () => {},\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: { club: { discount, name } = {}, currency, locale } = {} } = useStore();\n\n const handleChange = ({ clubDiscount } = {}) => {\n const next = { ...value };\n\n if (clubDiscount !== undefined) next.clubDiscount = clubDiscount;\n\n onChange(next);\n };\n\n const { clubDiscount = false } = value;\n\n const { contentBackground } = Theme.get();\n\n return (\n <View\n row\n className={styles(style.header, !isMobile && others.className)}\n style={{ backgroundColor: opacity(contentBackground, 0.66) }}\n >\n {children}\n\n {discount !== undefined && (\n <View row wide={isMobile} className={[style.tag, clubDiscount && style.highlight]}>\n <Text action bold>\n {translate(L10N.LABEL_CLUB_DISCOUNT)}\n </Text>\n <Tooltip\n pressable\n Template={() => (\n <>\n <Text bold small>\n {translate(L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE, { club: name })}\n </Text>\n {clubConditions ? (\n <Text small>\n {translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action href={clubConditions} inline target=\"_blank\" className={style.action}>\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })}\n </Text>\n ) : (\n <Text small>{translate(L10N.LABEL_CLUB_BENEFITS)}</Text>\n )}\n </>\n )}\n className={style.tooltip}\n >\n <Icon value={ICON.INFO} />\n </Tooltip>\n\n <Switch\n checked={clubDiscount}\n name=\"clubDiscount\"\n onChange={(nextValue) => handleChange({ clubDiscount: nextValue })}\n className={style.input}\n />\n </View>\n )}\n\n <View style={{ position: 'relative' }}>\n <Text className={style.currencyValue}>{currency}</Text>\n <InputSelect\n name=\"currency\"\n options={CURRENCIES.map(\n (currency) => `${currency} - ${new Intl.DisplayNames(locale, { type: 'currency' }).of(currency)}`,\n )}\n values={CURRENCIES}\n value={currency}\n onChange={onCurrency}\n className={[style.input, style.selectCurrencies]}\n />\n </View>\n </View>\n );\n};\n\nHeader.displayName = 'Mirai:Core:Rates.Header';\n\nHeader.propTypes = {\n children: PropTypes.node,\n dataSource: PropTypes.shape({}),\n value: PropTypes.shape({\n board: PropTypes.string,\n clubDiscount: PropTypes.bool,\n }),\n onChange: PropTypes.func,\n onCurrency: PropTypes.func,\n};\n\nexport { Header };\n"],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RoomSelector = void 0;
7
+ var _dataSources = require("@mirai/data-sources");
8
+ var _locale = require("@mirai/locale");
9
+ var _ui = require("@mirai/ui");
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _Rates = require("./Rates.l10n");
13
+ var style = _interopRequireWildcard(require("./Rates.module.css"));
14
+ var _helpers = require("../helpers");
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
+ const RoomSelector = _ref => {
20
+ let {
21
+ cart = [],
22
+ occupation = [],
23
+ room: roomIndex,
24
+ onPress = () => {}
25
+ } = _ref;
26
+ const {
27
+ isMobile
28
+ } = (0, _ui.useDevice)();
29
+ const {
30
+ translate
31
+ } = (0, _locale.useLocale)();
32
+ const {
33
+ value: {
34
+ hotel: {
35
+ accommodationType
36
+ } = {}
37
+ }
38
+ } = (0, _dataSources.useStore)();
39
+
40
+ // const lastRoomIndex = cart.findIndex((item) => )
41
+
42
+ return occupation.length >= 2 ? /*#__PURE__*/_react.default.createElement(_ui.ScrollView, {
43
+ horizontal: true,
44
+ snap: false,
45
+ className: style.roomSelector
46
+ }, occupation.map(function () {
47
+ let items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
48
+ let index = arguments.length > 1 ? arguments[1] : undefined;
49
+ const guests = items.reduce(function (total) {
50
+ let {
51
+ amount
52
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
53
+ return total + amount;
54
+ }, 0);
55
+ const textProps = {
56
+ bold: index <= roomIndex,
57
+ action: !isMobile,
58
+ small: isMobile
59
+ };
60
+ const hasCart = index <= roomIndex || cart[index] !== undefined;
61
+ return /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
62
+ disabled: !hasCart,
63
+ key: index,
64
+ onPress: () => onPress(index),
65
+ className: [style.tag, style.room, index === roomIndex ? style.active : hasCart ? style.highlight : undefined]
66
+ }, index === roomIndex && !cart[index] && /*#__PURE__*/_react.default.createElement(_ui.Text, _extends({}, textProps, {
67
+ bold: false
68
+ }), translate(_Rates.L10N.LABEL_SELECT)), /*#__PURE__*/_react.default.createElement(_ui.Text, _extends({}, textProps, {
69
+ capitalize: true
70
+ }), "".concat(translate(_Rates.L10N.LABEL_ACCOMMODATION_TYPE, {
71
+ type: accommodationType
72
+ }), " ").concat(index + 1)), /*#__PURE__*/_react.default.createElement(_ui.Text, {
73
+ headline: true,
74
+ className: style.separator
75
+ }, "|"), /*#__PURE__*/_react.default.createElement(_ui.Icon, {
76
+ headline: true,
77
+ level: isMobile ? 3 : 2,
78
+ value: guests === 1 || guests > 3 ? _helpers.ICON.PERSON : guests === 2 ? _helpers.ICON.GROUP : _helpers.ICON.GROUPS
79
+ }), /*#__PURE__*/_react.default.createElement(_ui.Text, _extends({}, textProps, {
80
+ bold: true
81
+ }), guests));
82
+ })) : null;
83
+ };
84
+ exports.RoomSelector = RoomSelector;
85
+ RoomSelector.displayName = 'Mirai:Core:Rates.RoomSelector';
86
+ RoomSelector.propTypes = {
87
+ cart: _propTypes.default.arrayOf(_propTypes.default.shape({})),
88
+ occupation: _propTypes.default.arrayOf(_propTypes.default.arrayOf(_propTypes.default.shape({
89
+ ages: _propTypes.default.arrayOf(_propTypes.default.number),
90
+ amount: _propTypes.default.number,
91
+ type: _propTypes.default.number
92
+ }))),
93
+ room: _propTypes.default.number,
94
+ onPress: _propTypes.default.func
95
+ };
96
+ //# sourceMappingURL=Rates.RoomSelector.js.map