@mirai/core 0.3.414 → 0.3.415

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.
@@ -2702,9 +2702,21 @@ exports[`<Rates> inherit:className 1`] = `
2702
2702
  />
2703
2703
  <ui-button
2704
2704
  class="pressable button small"
2705
+ disabled="false"
2705
2706
  tabindex="0"
2706
2707
  >
2707
- common.action.view_more
2708
+ <ui-view
2709
+ class="view busyContainer"
2710
+ >
2711
+ <ui-view
2712
+ class="view spinner"
2713
+ />
2714
+ </ui-view>
2715
+ <ui-view
2716
+ class="view row children"
2717
+ >
2718
+ common.action.view_more
2719
+ </ui-view>
2708
2720
  </ui-button>
2709
2721
  </ui-view>
2710
2722
  </ui-view>
@@ -5455,9 +5467,21 @@ exports[`<Rates> renders 1`] = `
5455
5467
  />
5456
5468
  <ui-button
5457
5469
  class="pressable button small"
5470
+ disabled="false"
5458
5471
  tabindex="0"
5459
5472
  >
5460
- common.action.view_more
5473
+ <ui-view
5474
+ class="view busyContainer"
5475
+ >
5476
+ <ui-view
5477
+ class="view spinner"
5478
+ />
5479
+ </ui-view>
5480
+ <ui-view
5481
+ class="view row children"
5482
+ >
5483
+ common.action.view_more
5484
+ </ui-view>
5461
5485
  </ui-button>
5462
5486
  </ui-view>
5463
5487
  </ui-view>
@@ -8301,9 +8325,21 @@ exports[`<Rates> renders:skeleton 1`] = `
8301
8325
  />
8302
8326
  <ui-button
8303
8327
  class="pressable button small"
8328
+ disabled="false"
8304
8329
  tabindex="0"
8305
8330
  >
8306
- common.action.view_more
8331
+ <ui-view
8332
+ class="view busyContainer"
8333
+ >
8334
+ <ui-view
8335
+ class="view spinner"
8336
+ />
8337
+ </ui-view>
8338
+ <ui-view
8339
+ class="view row children"
8340
+ >
8341
+ common.action.view_more
8342
+ </ui-view>
8307
8343
  </ui-button>
8308
8344
  </ui-view>
8309
8345
  </ui-view>
@@ -11066,9 +11102,21 @@ exports[`<Rates> testID 1`] = `
11066
11102
  />
11067
11103
  <ui-button
11068
11104
  class="pressable button small"
11105
+ disabled="false"
11069
11106
  tabindex="0"
11070
11107
  >
11071
- common.action.view_more
11108
+ <ui-view
11109
+ class="view busyContainer"
11110
+ >
11111
+ <ui-view
11112
+ class="view spinner"
11113
+ />
11114
+ </ui-view>
11115
+ <ui-view
11116
+ class="view row children"
11117
+ >
11118
+ common.action.view_more
11119
+ </ui-view>
11072
11120
  </ui-button>
11073
11121
  </ui-view>
11074
11122
  </ui-view>
@@ -60,25 +60,28 @@ const CardHotel = function () {
60
60
  } = {}
61
61
  } = {}
62
62
  } = (0, _dataSources.useStore)();
63
+ const [busy, setBusy] = (0, _react.useState)(false);
63
64
  const [sliderWidth, setSliderWidth] = (0, _react.useState)(DEFAULT_WIDTH);
64
65
  (0, _react.useEffect)(() => {
65
66
  var _ref$current;
66
67
  if (ref.current) setSliderWidth(((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.clientWidth) - 1);
67
68
  }, [width]);
68
69
  const handlePress = () => {
70
+ setBusy(true);
69
71
  _dataSources.Event.publish(_helpers3.EVENT.METRICS, {
70
72
  id: 'HOTELS:ITEM:SELECT'
71
73
  });
72
- const {
73
- value
74
- } = places.find(function () {
75
- let {
76
- isHotel,
77
- id: ids = []
78
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
79
- return isHotel && ids.includes(id.toString());
80
- }) || {};
81
74
  setTimeout(() => {
75
+ const {
76
+ value
77
+ } = places.find(function () {
78
+ let {
79
+ isHotel,
80
+ id: ids = []
81
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
82
+ return isHotel && ids.includes(id.toString());
83
+ }) || {};
84
+ setBusy(false);
82
85
  window.location.href = "".concat(forwarder.rates).concat((0, _helpers3.toUrlParams)({
83
86
  ...(0, _helpers2.fetchUrlParams)(window.location.search),
84
87
  ...(0, _helpers4.getFinderParams)({
@@ -93,7 +96,7 @@ const CardHotel = function () {
93
96
  }),
94
97
  idtokenprovider: id
95
98
  }));
96
- }, 200);
99
+ }, _helpers3.SUBMIT_DELAY);
97
100
  };
98
101
  const caption = {
99
102
  action: !isMobile,
@@ -197,6 +200,7 @@ const CardHotel = function () {
197
200
  small: !isMobile,
198
201
  tiny: isMobile
199
202
  }, translate((0, _helpers4.getLabelTaxes)(taxes)))), /*#__PURE__*/_react.default.createElement(_ui.Button, {
203
+ busy: busy,
200
204
  onPress: handlePress
201
205
  }, translate(_CardHotel.L10N.ACTION_VIEW_MORE)))));
202
206
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CardHotel.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_CardHotel","style","_helpers","_helpers2","_shared__","_helpers3","_helpers4","_components","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","DEFAULT_WIDTH","CardHotel","discountPercentage","features","distance","location","url","hasDiscountClub","id","images","name","nights","price","stars","taxes","unavailability","arguments","length","undefined","isMobile","width","useDevice","locale","translate","useLocale","ref","useRef","value","currency","finder","forwarder","hotel","hotelId","tags","options","places","useStore","sliderWidth","setSliderWidth","useState","useEffect","_ref$current","current","clientWidth","handlePress","Event","publish","EVENT","METRICS","find","isHotel","ids","includes","toString","setTimeout","window","href","concat","rates","toUrlParams","fetchUrlParams","search","getFinderParams","place","idtokenprovider","caption","action","small","placeId","title","placeName","hotelName","createElement","Card","View","className","card","preview","Slider","height","metrics","slider","row","Text","bold","tag","L10N","LABEL_CLUB_MEMBERS","offset","spaceBetween","Icon","ICON","LOCATION","LABEL_DISTANCE","Intl","NumberFormat","unit","minimumFractionDigits","maximumFractionDigits","format","headline","level","Array","from","Action","getHotelUrl","target","onPress","ACTION_VIEW_HOTEL","summary","accent","LABEL_DISCOUNT","currencyFormat","tiny","LABEL_PER_NIGHT","light","getLabelTaxes","Button","ACTION_VIEW_MORE","exports","displayName","propTypes","PropTypes","number","shape","string","bool","oneOfType","arrayOf"],"sources":["../../../../../src/components/Rates/components/CardHotel/CardHotel.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { L10N } from './CardHotel.l10n';\nimport * as style from './CardHotel.module.css';\nimport { getHotelUrl } from './helpers';\nimport { fetchUrlParams } from '../../../../helpers';\nimport { Card } from '../../../__shared__';\nimport { EVENT, ICON, toUrlParams } from '../../../helpers';\nimport { getFinderParams, getLabelTaxes } from '../../helpers';\nimport { Slider } from '../Item/components';\n\nconst DEFAULT_WIDTH = 374;\n\nconst CardHotel = ({\n discountPercentage = 0,\n features: { distance, location, url } = {},\n hasDiscountClub = false,\n id,\n images = [],\n name,\n nights = 1,\n price,\n stars,\n taxes,\n unavailability,\n} = {}) => {\n const { isMobile, width } = useDevice();\n const { locale, translate } = useLocale();\n const ref = useRef(null);\n const { value: { currency, finder, forwarder = {}, hotel, id: hotelId, tags: { options: places = [] } = {} } = {} } =\n useStore();\n\n const [sliderWidth, setSliderWidth] = useState(DEFAULT_WIDTH);\n\n useEffect(() => {\n if (ref.current) setSliderWidth(ref.current?.clientWidth - 1);\n }, [width]);\n\n const handlePress = () => {\n Event.publish(EVENT.METRICS, { id: 'HOTELS:ITEM:SELECT' });\n\n const { value } = places.find(({ isHotel, id: ids = [] } = {}) => isHotel && ids.includes(id.toString())) || {};\n setTimeout(() => {\n window.location.href = `${forwarder.rates}${toUrlParams({\n ...fetchUrlParams(window.location.search),\n ...getFinderParams({ ...finder, ...{ place: { id: undefined, value } }, hotel }),\n idtokenprovider: id,\n })}`;\n }, 200);\n };\n\n const caption = { action: !isMobile, small: isMobile };\n const { features = {} } = hotel || {};\n const { place: { id: [placeId] = [], isHotel, title: placeName } = {} } = finder || {};\n const { name: hotelName } = (placeId ? (isHotel ? features[placeId] : { name: placeName }) : features[hotelId]) || {};\n\n return (\n <Card>\n <View ref={ref} className={style.card}>\n <View className={style.preview}>\n <Slider height={208} images={images} metrics=\"HOTELS:ITEM\" width={sliderWidth} className={style.slider} />\n\n <View row className={style.tags}>\n {hasDiscountClub && (\n <Text bold small className={style.tag}>\n {translate(L10N.LABEL_CLUB_MEMBERS)}\n </Text>\n )}\n </View>\n </View>\n\n {distance && (\n <View row className={[style.offset, style.spaceBetween]}>\n <View row className={style.row}>\n <Icon value={ICON.LOCATION} />\n <Text small>\n {translate(L10N.LABEL_DISTANCE, {\n distance: Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'kilometer',\n minimumFractionDigits: 1,\n maximumFractionDigits: 1,\n }).format(distance),\n name: hotelName,\n })}\n </Text>\n </View>\n </View>\n )}\n\n <View className={style.offset}>\n <Text bold headline={!isMobile} level={3}>\n {name}\n </Text>\n {stars > 0 && (\n <Text headline={!isMobile} level={3}>\n {Array.from({ length: stars }, () => '★')}\n </Text>\n )}\n\n <Text {...caption}>{location}</Text>\n\n {url && (\n <Action\n href={unavailability ? getHotelUrl(url) : url}\n small={isMobile}\n target=\"_blank\"\n onPress={() => Event.publish(EVENT.METRICS, { id: 'HOTELS:ITEM:SITE' })}\n >\n {translate(L10N.ACTION_VIEW_HOTEL)}\n </Action>\n )}\n </View>\n\n <View row className={[style.offset, style.spaceBetween, style.summary]}>\n <View>\n <Text accent bold small>\n {translate(L10N.LABEL_DISCOUNT, { value: `${discountPercentage}%` })}\n </Text>\n\n <Text bold headline level={isMobile || price >= 10000 ? 3 : 2}>\n {currencyFormat({ currency, locale, maximumFractionDigits: 0, value: price })}\n </Text>\n\n <Text small={!isMobile} tiny={isMobile}>\n {currencyFormat({ currency, value: price / nights })} {translate(L10N.LABEL_PER_NIGHT)}\n </Text>\n\n <Text light small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxes))}\n </Text>\n </View>\n\n <Button onPress={handlePress}>{translate(L10N.ACTION_VIEW_MORE)}</Button>\n </View>\n </View>\n </Card>\n );\n};\n\nCardHotel.displayName = 'Mirai:Core:Rates:CardHotel';\n\nCardHotel.propTypes = {\n discountPercentage: PropTypes.number,\n features: PropTypes.shape({\n distance: PropTypes.string,\n location: PropTypes.string,\n url: PropTypes.string,\n }),\n hasDiscountClub: PropTypes.bool,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n images: PropTypes.arrayOf(PropTypes.string),\n name: PropTypes.string,\n nights: PropTypes.number,\n price: PropTypes.number,\n stars: PropTypes.number,\n taxes: PropTypes.number,\n unavailability: PropTypes.bool,\n};\n\nexport { CardHotel };\n"],"mappings":"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"}
1
+ {"version":3,"file":"CardHotel.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_CardHotel","style","_helpers","_helpers2","_shared__","_helpers3","_helpers4","_components","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","DEFAULT_WIDTH","CardHotel","discountPercentage","features","distance","location","url","hasDiscountClub","id","images","name","nights","price","stars","taxes","unavailability","arguments","length","undefined","isMobile","width","useDevice","locale","translate","useLocale","ref","useRef","value","currency","finder","forwarder","hotel","hotelId","tags","options","places","useStore","busy","setBusy","useState","sliderWidth","setSliderWidth","useEffect","_ref$current","current","clientWidth","handlePress","Event","publish","EVENT","METRICS","setTimeout","find","isHotel","ids","includes","toString","window","href","concat","rates","toUrlParams","fetchUrlParams","search","getFinderParams","place","idtokenprovider","SUBMIT_DELAY","caption","action","small","placeId","title","placeName","hotelName","createElement","Card","View","className","card","preview","Slider","height","metrics","slider","row","Text","bold","tag","L10N","LABEL_CLUB_MEMBERS","offset","spaceBetween","Icon","ICON","LOCATION","LABEL_DISTANCE","Intl","NumberFormat","unit","minimumFractionDigits","maximumFractionDigits","format","headline","level","Array","from","Action","getHotelUrl","target","onPress","ACTION_VIEW_HOTEL","summary","accent","LABEL_DISCOUNT","currencyFormat","tiny","LABEL_PER_NIGHT","light","getLabelTaxes","Button","ACTION_VIEW_MORE","exports","displayName","propTypes","PropTypes","number","shape","string","bool","oneOfType","arrayOf"],"sources":["../../../../../src/components/Rates/components/CardHotel/CardHotel.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { L10N } from './CardHotel.l10n';\nimport * as style from './CardHotel.module.css';\nimport { getHotelUrl } from './helpers';\nimport { fetchUrlParams } from '../../../../helpers';\nimport { Card } from '../../../__shared__';\nimport { EVENT, ICON, SUBMIT_DELAY, toUrlParams } from '../../../helpers';\nimport { getFinderParams, getLabelTaxes } from '../../helpers';\nimport { Slider } from '../Item/components';\n\nconst DEFAULT_WIDTH = 374;\n\nconst CardHotel = ({\n discountPercentage = 0,\n features: { distance, location, url } = {},\n hasDiscountClub = false,\n id,\n images = [],\n name,\n nights = 1,\n price,\n stars,\n taxes,\n unavailability,\n} = {}) => {\n const { isMobile, width } = useDevice();\n const { locale, translate } = useLocale();\n const ref = useRef(null);\n const { value: { currency, finder, forwarder = {}, hotel, id: hotelId, tags: { options: places = [] } = {} } = {} } =\n useStore();\n\n const [busy, setBusy] = useState(false);\n const [sliderWidth, setSliderWidth] = useState(DEFAULT_WIDTH);\n\n useEffect(() => {\n if (ref.current) setSliderWidth(ref.current?.clientWidth - 1);\n }, [width]);\n\n const handlePress = () => {\n setBusy(true);\n Event.publish(EVENT.METRICS, { id: 'HOTELS:ITEM:SELECT' });\n\n setTimeout(() => {\n const { value } = places.find(({ isHotel, id: ids = [] } = {}) => isHotel && ids.includes(id.toString())) || {};\n setBusy(false);\n window.location.href = `${forwarder.rates}${toUrlParams({\n ...fetchUrlParams(window.location.search),\n ...getFinderParams({ ...finder, ...{ place: { id: undefined, value } }, hotel }),\n idtokenprovider: id,\n })}`;\n }, SUBMIT_DELAY);\n };\n\n const caption = { action: !isMobile, small: isMobile };\n const { features = {} } = hotel || {};\n const { place: { id: [placeId] = [], isHotel, title: placeName } = {} } = finder || {};\n const { name: hotelName } = (placeId ? (isHotel ? features[placeId] : { name: placeName }) : features[hotelId]) || {};\n\n return (\n <Card>\n <View ref={ref} className={style.card}>\n <View className={style.preview}>\n <Slider height={208} images={images} metrics=\"HOTELS:ITEM\" width={sliderWidth} className={style.slider} />\n\n <View row className={style.tags}>\n {hasDiscountClub && (\n <Text bold small className={style.tag}>\n {translate(L10N.LABEL_CLUB_MEMBERS)}\n </Text>\n )}\n </View>\n </View>\n\n {distance && (\n <View row className={[style.offset, style.spaceBetween]}>\n <View row className={style.row}>\n <Icon value={ICON.LOCATION} />\n <Text small>\n {translate(L10N.LABEL_DISTANCE, {\n distance: Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'kilometer',\n minimumFractionDigits: 1,\n maximumFractionDigits: 1,\n }).format(distance),\n name: hotelName,\n })}\n </Text>\n </View>\n </View>\n )}\n\n <View className={style.offset}>\n <Text bold headline={!isMobile} level={3}>\n {name}\n </Text>\n {stars > 0 && (\n <Text headline={!isMobile} level={3}>\n {Array.from({ length: stars }, () => '★')}\n </Text>\n )}\n\n <Text {...caption}>{location}</Text>\n\n {url && (\n <Action\n href={unavailability ? getHotelUrl(url) : url}\n small={isMobile}\n target=\"_blank\"\n onPress={() => Event.publish(EVENT.METRICS, { id: 'HOTELS:ITEM:SITE' })}\n >\n {translate(L10N.ACTION_VIEW_HOTEL)}\n </Action>\n )}\n </View>\n\n <View row className={[style.offset, style.spaceBetween, style.summary]}>\n <View>\n <Text accent bold small>\n {translate(L10N.LABEL_DISCOUNT, { value: `${discountPercentage}%` })}\n </Text>\n\n <Text bold headline level={isMobile || price >= 10000 ? 3 : 2}>\n {currencyFormat({ currency, locale, maximumFractionDigits: 0, value: price })}\n </Text>\n\n <Text small={!isMobile} tiny={isMobile}>\n {currencyFormat({ currency, value: price / nights })} {translate(L10N.LABEL_PER_NIGHT)}\n </Text>\n\n <Text light small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxes))}\n </Text>\n </View>\n\n <Button busy={busy} onPress={handlePress}>\n {translate(L10N.ACTION_VIEW_MORE)}\n </Button>\n </View>\n </View>\n </Card>\n );\n};\n\nCardHotel.displayName = 'Mirai:Core:Rates:CardHotel';\n\nCardHotel.propTypes = {\n discountPercentage: PropTypes.number,\n features: PropTypes.shape({\n distance: PropTypes.string,\n location: PropTypes.string,\n url: PropTypes.string,\n }),\n hasDiscountClub: PropTypes.bool,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n images: PropTypes.arrayOf(PropTypes.string),\n name: PropTypes.string,\n nights: PropTypes.number,\n price: PropTypes.number,\n stars: PropTypes.number,\n taxes: PropTypes.number,\n unavailability: PropTypes.bool,\n};\n\nexport { CardHotel };\n"],"mappings":"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"}
@@ -74,9 +74,21 @@ exports[`<Rates> <CardHotel> renders 1`] = `
74
74
  </ui-view>
75
75
  <ui-button
76
76
  class="pressable button"
77
+ disabled="false"
77
78
  tabindex="0"
78
79
  >
79
- common.action.view_more
80
+ <ui-view
81
+ class="view busyContainer"
82
+ >
83
+ <ui-view
84
+ class="view spinner"
85
+ />
86
+ </ui-view>
87
+ <ui-view
88
+ class="view row children"
89
+ >
90
+ common.action.view_more
91
+ </ui-view>
80
92
  </ui-button>
81
93
  </ui-view>
82
94
  </ui-view>
@@ -21,6 +21,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
21
21
  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); }
22
22
  const ModalExtras = _ref => {
23
23
  let {
24
+ busy,
24
25
  cart = [],
25
26
  extras: propExtras = [],
26
27
  taxesType,
@@ -303,12 +304,14 @@ const ModalExtras = _ref => {
303
304
  }, others, {
304
305
  className: style.priceDetails
305
306
  }))), /*#__PURE__*/_react.default.createElement(_ui.Button, {
307
+ busy: busy,
306
308
  onPress: handleSubmit,
307
309
  testId: testId ? "".concat(testId, "-submit") : undefined
308
310
  }, translate(hasSelected ? _ModalExtras.L10N.ACTION_RESERVE : _ModalExtras.L10N.ACTION_NEXT))));
309
311
  };
310
312
  exports.ModalExtras = ModalExtras;
311
313
  ModalExtras.propTypes = {
314
+ busy: _propTypes.default.bool,
312
315
  cart: _propTypes.default.arrayOf(_propTypes.default.shape({})),
313
316
  extras: _propTypes.default.arrayOf(_propTypes.default.shape({})),
314
317
  taxesType: _propTypes.default.number,
@@ -1 +1 @@
1
- {"version":3,"file":"ModalExtras.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_ModalExtras","style","_helpers2","_helpers3","_components","_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","ModalExtras","_ref","cart","extras","propExtras","taxesType","visible","onCancel","onSubmit","others","isMobile","useDevice","currencyFormat","translate","useLocale","value","currency","finder","hotel","accommodationType","hotelAccommodationType","variants","useStore","setExtras","useState","useEffect","Event","publish","EVENT","METRICS","id","handleChange","field","undefined","map","extra","parseInt","handleSelect","next","_ref2","selected","concat","filter","_ref3","_ref4","handleSubmit","item","included","_ref5","_baseValue","amount","baseValue","nights","valueAmount","valueNights","price","hasSelected","total","reduce","totalExtras","_value","place","standaloneCard","testId","createElement","Modal","fit","title","L10N","LABEL_ENHANCED_YOUR_STAY","onClose","className","modal","ScrollView","scrollIndicator","scrollTo","snap","scrollView","View","row","container","accommodationThreshold","conditions","frequency","guestThreshold","guestType","image","inputGuests","inputNights","text","type","wide","styles","card","standalone","unselected","backgroundImage","gap","offset","anchor","Text","bold","small","Notification","inline","warning","LABEL_APPLIES_SELECTED_ROOMS","LABEL_APPLIES_INDIVIDUALS_RESERVATION","light","tiny","inputs","InputSelect","capitalize","name","label","getGuestLabel","plural","options","Array","from","_","index","toString","onChange","LABEL_NIGHTS","spaceBetween","headline","maximumFractionDigits","LABEL_FREE","getCaption","Button","secondary","onPress","LABEL_INCLUDED","ACTION_REMOVE","ACTION_ADD","footer","level","getLabelTaxes","PriceDetails","_ref6","metrics","priceDetails","ACTION_RESERVE","ACTION_NEXT","exports","propTypes","PropTypes","arrayOf","shape","number","bool","func","displayName"],"sources":["../../../../../src/components/Rates/components/ModalExtras/ModalExtras.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, InputSelect, Modal, Notification, ScrollView, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { getCaption } from './helpers';\nimport { L10N } from './ModalExtras.l10n';\nimport * as style from './ModalExtras.module.css';\nimport { getGuestLabel } from '../../../helpers';\nimport { EVENT } from '../../../helpers';\nimport { getLabelTaxes } from '../../helpers';\nimport { PriceDetails } from '../Item/components';\n\nconst ModalExtras = ({\n cart = [],\n extras: propExtras = [],\n taxesType,\n visible = false,\n onCancel = () => {},\n onSubmit = () => {},\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { currencyFormat, translate } = useLocale();\n const {\n value: { currency, finder = {}, hotel: { accommodationType: hotelAccommodationType, variants = {} } = {} } = {},\n } = useStore();\n\n const [extras, setExtras] = useState(propExtras);\n\n useEffect(() => {\n if (visible) {\n setExtras(propExtras);\n Event.publish(EVENT.METRICS, { id: 'RATES:EXTRAS' });\n }\n }, [propExtras, visible]);\n\n const handleChange = ({ id, field, value } = {}) => {\n // ! Why parse Number()? should come from the service.\n setExtras(extras.map((extra) => ({ ...extra, [field]: extra.id === id ? parseInt(value) : extra[field] })));\n };\n\n const handleSelect = (id) => {\n const next = extras.map(({ selected = false, ...extra }) => ({\n ...extra,\n selected: extra.id === id ? !selected : selected,\n }));\n\n setExtras(next);\n\n Event.publish(EVENT.METRICS, {\n id: `RATES:EXTRAS:${\n next.filter(({ selected }) => selected).length > extras.filter(({ selected }) => selected).length\n ? 'ADD'\n : 'REMOVE'\n }`,\n });\n };\n\n const handleSubmit = () => {\n onSubmit(\n extras\n .filter((item) => item.selected || item.included)\n .map(({ amount, baseValue, nights, id, included, valueAmount, valueNights }) => ({\n id,\n included,\n amount: parseInt(valueAmount || amount),\n nights: parseInt(valueNights || nights),\n value: baseValue[valueAmount || amount][valueNights || nights]?.price,\n })),\n );\n };\n\n const hasSelected = extras.filter((item) => !!item.selected).length > 0;\n const total = cart.reduce((value, { price } = {}) => value + price, 0);\n const totalExtras = extras\n .filter((item) => item.selected)\n .reduce(\n (total, { amount, nights, valueAmount, valueNights, value = {} } = {}) =>\n total + (value[valueAmount || amount][valueNights || nights]?.price || 0),\n 0,\n );\n const { place: { id: [id] = [] } = {} } = finder;\n const { accommodationType = hotelAccommodationType } = variants[id] || {};\n const standaloneCard = extras.length === 1;\n const { testId } = others;\n\n return (\n <Modal\n fit\n title={translate(L10N.LABEL_ENHANCED_YOUR_STAY)}\n visible={visible}\n onClose={onCancel}\n className={style.modal}\n testId={testId}\n >\n <ScrollView scrollIndicator scrollTo={visible ? 0.5 : undefined} snap={false} className={style.scrollView}>\n <View row className={style.container}>\n {extras.map(\n ({\n accommodationThreshold = 0,\n amount = 0,\n conditions,\n frequency,\n guestThreshold = 0,\n guestType,\n id,\n image,\n included = false,\n inputGuests = false,\n inputNights = false,\n nights = 0,\n selected = false,\n text,\n title,\n type,\n value = {},\n valueAmount = amount,\n valueNights = nights,\n } = {}) => {\n const { price: total } = value[valueAmount][valueNights] || {};\n\n return (\n <View\n key={id}\n wide\n className={styles(\n style.card,\n standaloneCard && style.standalone,\n hasSelected ? (selected ? style.selected : style.unselected) : undefined,\n )}\n >\n <View className={style.image} style={{ backgroundImage: `url(${image})` }} />\n\n <View wide className={[style.gap, style.offset, style.anchor]}>\n <Text bold>{title}</Text>\n {text && <Text small>{text}</Text>}\n\n {accommodationThreshold > 0 && (\n <Notification inline small warning>\n {translate(L10N.LABEL_APPLIES_SELECTED_ROOMS, { value: accommodationThreshold })}\n </Notification>\n )}\n\n {guestThreshold > 0 && (\n <Notification inline small warning>\n {translate(L10N.LABEL_APPLIES_INDIVIDUALS_RESERVATION, { value: guestThreshold })}\n </Notification>\n )}\n\n {conditions && (\n <Text light small={!isMobile} tiny={isMobile}>\n {conditions}\n </Text>\n )}\n\n {(inputGuests || inputNights) && (\n <View row className={styles(style.gap, style.inputs)}>\n {inputGuests && (\n <InputSelect\n capitalize\n name=\"guests\"\n label={getGuestLabel({ plural: true, type: guestType }, translate)}\n options={Array.from({ length: amount }).map((_, index) => index + 1)}\n value={valueAmount?.toString()}\n onChange={(value) => handleChange({ id, field: 'valueAmount', value })}\n />\n )}\n {inputNights && (\n <InputSelect\n name=\"nights\"\n label={translate(L10N.LABEL_NIGHTS)}\n options={Array.from({ length: nights }).map((_, index) => index + 1)}\n value={valueNights?.toString()}\n onChange={(value) => handleChange({ id, field: 'valueNights', value })}\n />\n )}\n </View>\n )}\n </View>\n\n <View row className={[style.offset, style.spaceBetween]}>\n <View>\n <Text bold headline>\n {total\n ? currencyFormat({ currency, maximumFractionDigits: 0, value: total })\n : translate(L10N.LABEL_FREE)}\n </Text>\n <Text light small>\n {getCaption(\n {\n accommodationType,\n amount,\n frequency,\n guestType,\n inputGuests,\n type,\n valueAmount,\n valueNights,\n },\n translate,\n )}\n </Text>\n </View>\n\n <Button\n small\n secondary={!selected && !included}\n onPress={!included ? () => handleSelect(id) : undefined}\n >\n {translate(included ? L10N.LABEL_INCLUDED : selected ? L10N.ACTION_REMOVE : L10N.ACTION_ADD)}\n </Button>\n </View>\n </View>\n );\n },\n )}\n </View>\n </ScrollView>\n\n <View row className={style.footer}>\n {total > 0 && (\n <View className={style.total}>\n <Text bold headline level={isMobile ? 3 : 2}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: total + totalExtras })}\n </Text>\n\n {!!taxesType && (\n <Text light small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n\n <PriceDetails\n extras={extras.filter(({ selected }) => selected)}\n cart={cart}\n metrics=\"RATES:EXTRAS\"\n {...others}\n className={style.priceDetails}\n />\n </View>\n )}\n\n <Button onPress={handleSubmit} testId={testId ? `${testId}-submit` : undefined}>\n {translate(hasSelected ? L10N.ACTION_RESERVE : L10N.ACTION_NEXT)}\n </Button>\n </View>\n </Modal>\n );\n};\n\nModalExtras.propTypes = {\n cart: PropTypes.arrayOf(PropTypes.shape({})),\n extras: PropTypes.arrayOf(PropTypes.shape({})),\n taxesType: PropTypes.number,\n visible: PropTypes.bool,\n onCancel: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nModalExtras.displayName = 'Mirai:Core:Rates:ModalExtras';\n\nexport { ModalExtras };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,GAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAC,uBAAA,CAAAN,OAAA;AAEA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAH,uBAAA,CAAAN,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AAEA,IAAAW,SAAA,GAAAX,OAAA;AACA,IAAAY,WAAA,GAAAZ,OAAA;AAAkD,SAAAa,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,SAAAR,wBAAAQ,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,SAAAlB,uBAAA8B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAAA,SAAAC,SAAA,IAAAA,QAAA,GAAAV,MAAA,CAAAW,MAAA,GAAAX,MAAA,CAAAW,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAN,CAAA,MAAAA,CAAA,GAAAO,SAAA,CAAAC,MAAA,EAAAR,CAAA,UAAAS,MAAA,GAAAF,SAAA,CAAAP,CAAA,YAAAU,GAAA,IAAAD,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAC,GAAA,KAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAJ,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAJ,SAAA;AAElD,MAAMK,WAAW,GAAGC,IAAA,IAQd;EAAA,IARe;IACnBC,IAAI,GAAG,EAAE;IACTC,MAAM,EAAEC,UAAU,GAAG,EAAE;IACvBC,SAAS;IACTC,OAAO,GAAG,KAAK;IACfC,QAAQ,GAAGA,CAAA,KAAM,CAAC,CAAC;IACnBC,QAAQ,GAAGA,CAAA,KAAM,CAAC,CAAC;IACnB,GAAGC;EACL,CAAC,GAAAR,IAAA;EACC,MAAM;IAAES;EAAS,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EAChC,MAAM;IAAEC,cAAc;IAAEC;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjD,MAAM;IACJC,KAAK,EAAE;MAAEC,QAAQ;MAAEC,MAAM,GAAG,CAAC,CAAC;MAAEC,KAAK,EAAE;QAAEC,iBAAiB,EAAEC,sBAAsB;QAAEC,QAAQ,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAChH,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,MAAM,CAACnB,MAAM,EAAEoB,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAACpB,UAAU,CAAC;EAEhD,IAAAqB,gBAAS,EAAC,MAAM;IACd,IAAInB,OAAO,EAAE;MACXiB,SAAS,CAACnB,UAAU,CAAC;MACrBsB,kBAAK,CAACC,OAAO,CAACC,eAAK,CAACC,OAAO,EAAE;QAAEC,EAAE,EAAE;MAAe,CAAC,CAAC;IACtD;EACF,CAAC,EAAE,CAAC1B,UAAU,EAAEE,OAAO,CAAC,CAAC;EAEzB,MAAMyB,YAAY,GAAG,SAAAA,CAAA,EAA+B;IAAA,IAA9B;MAAED,EAAE;MAAEE,KAAK;MAAEjB;IAAM,CAAC,GAAApB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAsC,SAAA,GAAAtC,SAAA,MAAG,CAAC,CAAC;IAC7C;IACA4B,SAAS,CAACpB,MAAM,CAAC+B,GAAG,CAAEC,KAAK,KAAM;MAAE,GAAGA,KAAK;MAAE,CAACH,KAAK,GAAGG,KAAK,CAACL,EAAE,KAAKA,EAAE,GAAGM,QAAQ,CAACrB,KAAK,CAAC,GAAGoB,KAAK,CAACH,KAAK;IAAE,CAAC,CAAC,CAAC,CAAC;EAC7G,CAAC;EAED,MAAMK,YAAY,GAAIP,EAAE,IAAK;IAC3B,MAAMQ,IAAI,GAAGnC,MAAM,CAAC+B,GAAG,CAACK,KAAA;MAAA,IAAC;QAAEC,QAAQ,GAAG,KAAK;QAAE,GAAGL;MAAM,CAAC,GAAAI,KAAA;MAAA,OAAM;QAC3D,GAAGJ,KAAK;QACRK,QAAQ,EAAEL,KAAK,CAACL,EAAE,KAAKA,EAAE,GAAG,CAACU,QAAQ,GAAGA;MAC1C,CAAC;IAAA,CAAC,CAAC;IAEHjB,SAAS,CAACe,IAAI,CAAC;IAEfZ,kBAAK,CAACC,OAAO,CAACC,eAAK,CAACC,OAAO,EAAE;MAC3BC,EAAE,kBAAAW,MAAA,CACAH,IAAI,CAACI,MAAM,CAACC,KAAA;QAAA,IAAC;UAAEH;QAAS,CAAC,GAAAG,KAAA;QAAA,OAAKH,QAAQ;MAAA,EAAC,CAAC5C,MAAM,GAAGO,MAAM,CAACuC,MAAM,CAACE,KAAA;QAAA,IAAC;UAAEJ;QAAS,CAAC,GAAAI,KAAA;QAAA,OAAKJ,QAAQ;MAAA,EAAC,CAAC5C,MAAM,GAC7F,KAAK,GACL,QAAQ;IAEhB,CAAC,CAAC;EACJ,CAAC;EAED,MAAMiD,YAAY,GAAGA,CAAA,KAAM;IACzBrC,QAAQ,CACNL,MAAM,CACHuC,MAAM,CAAEI,IAAI,IAAKA,IAAI,CAACN,QAAQ,IAAIM,IAAI,CAACC,QAAQ,CAAC,CAChDb,GAAG,CAACc,KAAA;MAAA,IAAAC,UAAA;MAAA,IAAC;QAAEC,MAAM;QAAEC,SAAS;QAAEC,MAAM;QAAEtB,EAAE;QAAEiB,QAAQ;QAAEM,WAAW;QAAEC;MAAY,CAAC,GAAAN,KAAA;MAAA,OAAM;QAC/ElB,EAAE;QACFiB,QAAQ;QACRG,MAAM,EAAEd,QAAQ,CAACiB,WAAW,IAAIH,MAAM,CAAC;QACvCE,MAAM,EAAEhB,QAAQ,CAACkB,WAAW,IAAIF,MAAM,CAAC;QACvCrC,KAAK,GAAAkC,UAAA,GAAEE,SAAS,CAACE,WAAW,IAAIH,MAAM,CAAC,CAACI,WAAW,IAAIF,MAAM,CAAC,cAAAH,UAAA,uBAAvDA,UAAA,CAAyDM;MAClE,CAAC;IAAA,CAAC,CACN,CAAC;EACH,CAAC;EAED,MAAMC,WAAW,GAAGrD,MAAM,CAACuC,MAAM,CAAEI,IAAI,IAAK,CAAC,CAACA,IAAI,CAACN,QAAQ,CAAC,CAAC5C,MAAM,GAAG,CAAC;EACvE,MAAM6D,KAAK,GAAGvD,IAAI,CAACwD,MAAM,CAAC,UAAC3C,KAAK;IAAA,IAAE;MAAEwC;IAAM,CAAC,GAAA5D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAsC,SAAA,GAAAtC,SAAA,MAAG,CAAC,CAAC;IAAA,OAAKoB,KAAK,GAAGwC,KAAK;EAAA,GAAE,CAAC,CAAC;EACtE,MAAMI,WAAW,GAAGxD,MAAM,CACvBuC,MAAM,CAAEI,IAAI,IAAKA,IAAI,CAACN,QAAQ,CAAC,CAC/BkB,MAAM,CACL,UAACD,KAAK;IAAA,IAAAG,MAAA;IAAA,IAAE;MAAEV,MAAM;MAAEE,MAAM;MAAEC,WAAW;MAAEC,WAAW;MAAEvC,KAAK,GAAG,CAAC;IAAE,CAAC,GAAApB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAsC,SAAA,GAAAtC,SAAA,MAAG,CAAC,CAAC;IAAA,OACnE8D,KAAK,IAAI,EAAAG,MAAA,GAAA7C,KAAK,CAACsC,WAAW,IAAIH,MAAM,CAAC,CAACI,WAAW,IAAIF,MAAM,CAAC,cAAAQ,MAAA,uBAAnDA,MAAA,CAAqDL,KAAK,KAAI,CAAC,CAAC;EAAA,GAC3E,CACF,CAAC;EACH,MAAM;IAAEM,KAAK,EAAE;MAAE/B,EAAE,EAAE,CAACA,EAAE,CAAC,GAAG;IAAG,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGb,MAAM;EAChD,MAAM;IAAEE,iBAAiB,GAAGC;EAAuB,CAAC,GAAGC,QAAQ,CAACS,EAAE,CAAC,IAAI,CAAC,CAAC;EACzE,MAAMgC,cAAc,GAAG3D,MAAM,CAACP,MAAM,KAAK,CAAC;EAC1C,MAAM;IAAEmE;EAAO,CAAC,GAAGtD,MAAM;EAEzB,oBACEhD,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAA2G,KAAK;IACJC,GAAG;IACHC,KAAK,EAAEtD,SAAS,CAACuD,iBAAI,CAACC,wBAAwB,CAAE;IAChD/D,OAAO,EAAEA,OAAQ;IACjBgE,OAAO,EAAE/D,QAAS;IAClBgE,SAAS,EAAE1G,KAAK,CAAC2G,KAAM;IACvBT,MAAM,EAAEA;EAAO,gBAEftG,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAmH,UAAU;IAACC,eAAe;IAACC,QAAQ,EAAErE,OAAO,GAAG,GAAG,GAAG2B,SAAU;IAAC2C,IAAI,EAAE,KAAM;IAACL,SAAS,EAAE1G,KAAK,CAACgH;EAAW,gBACxGpH,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAwH,IAAI;IAACC,GAAG;IAACR,SAAS,EAAE1G,KAAK,CAACmH;EAAU,GAClC7E,MAAM,CAAC+B,GAAG,CACT,YAoBW;IAAA,IApBV;MACC+C,sBAAsB,GAAG,CAAC;MAC1B/B,MAAM,GAAG,CAAC;MACVgC,UAAU;MACVC,SAAS;MACTC,cAAc,GAAG,CAAC;MAClBC,SAAS;MACTvD,EAAE;MACFwD,KAAK;MACLvC,QAAQ,GAAG,KAAK;MAChBwC,WAAW,GAAG,KAAK;MACnBC,WAAW,GAAG,KAAK;MACnBpC,MAAM,GAAG,CAAC;MACVZ,QAAQ,GAAG,KAAK;MAChBiD,IAAI;MACJtB,KAAK;MACLuB,IAAI;MACJ3E,KAAK,GAAG,CAAC,CAAC;MACVsC,WAAW,GAAGH,MAAM;MACpBI,WAAW,GAAGF;IAChB,CAAC,GAAAzD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAsC,SAAA,GAAAtC,SAAA,MAAG,CAAC,CAAC;IACJ,MAAM;MAAE4D,KAAK,EAAEE;IAAM,CAAC,GAAG1C,KAAK,CAACsC,WAAW,CAAC,CAACC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE9D,oBACE7F,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAwH,IAAI;MACHhF,GAAG,EAAEgC,EAAG;MACR6D,IAAI;MACJpB,SAAS,EAAE,IAAAqB,UAAM,EACf/H,KAAK,CAACgI,IAAI,EACV/B,cAAc,IAAIjG,KAAK,CAACiI,UAAU,EAClCtC,WAAW,GAAIhB,QAAQ,GAAG3E,KAAK,CAAC2E,QAAQ,GAAG3E,KAAK,CAACkI,UAAU,GAAI9D,SACjE;IAAE,gBAEFxE,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAwH,IAAI;MAACP,SAAS,EAAE1G,KAAK,CAACyH,KAAM;MAACzH,KAAK,EAAE;QAAEmI,eAAe,SAAAvD,MAAA,CAAS6C,KAAK;MAAI;IAAE,CAAE,CAAC,eAE7E7H,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAwH,IAAI;MAACa,IAAI;MAACpB,SAAS,EAAE,CAAC1G,KAAK,CAACoI,GAAG,EAAEpI,KAAK,CAACqI,MAAM,EAAErI,KAAK,CAACsI,MAAM;IAAE,gBAC5D1I,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAA8I,IAAI;MAACC,IAAI;IAAA,GAAElC,KAAY,CAAC,EACxBsB,IAAI,iBAAIhI,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAA8I,IAAI;MAACE,KAAK;IAAA,GAAEb,IAAW,CAAC,EAEjCR,sBAAsB,GAAG,CAAC,iBACzBxH,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAiJ,YAAY;MAACC,MAAM;MAACF,KAAK;MAACG,OAAO;IAAA,GAC/B5F,SAAS,CAACuD,iBAAI,CAACsC,4BAA4B,EAAE;MAAE3F,KAAK,EAAEkE;IAAuB,CAAC,CACnE,CACf,EAEAG,cAAc,GAAG,CAAC,iBACjB3H,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAiJ,YAAY;MAACC,MAAM;MAACF,KAAK;MAACG,OAAO;IAAA,GAC/B5F,SAAS,CAACuD,iBAAI,CAACuC,qCAAqC,EAAE;MAAE5F,KAAK,EAAEqE;IAAe,CAAC,CACpE,CACf,EAEAF,UAAU,iBACTzH,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAA8I,IAAI;MAACQ,KAAK;MAACN,KAAK,EAAE,CAAC5F,QAAS;MAACmG,IAAI,EAAEnG;IAAS,GAC1CwE,UACG,CACP,EAEA,CAACK,WAAW,IAAIC,WAAW,kBAC1B/H,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAwH,IAAI;MAACC,GAAG;MAACR,SAAS,EAAE,IAAAqB,UAAM,EAAC/H,KAAK,CAACoI,GAAG,EAAEpI,KAAK,CAACiJ,MAAM;IAAE,GAClDvB,WAAW,iBACV9H,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAyJ,WAAW;MACVC,UAAU;MACVC,IAAI,EAAC,QAAQ;MACbC,KAAK,EAAE,IAAAC,uBAAa,EAAC;QAAEC,MAAM,EAAE,IAAI;QAAE1B,IAAI,EAAEL;MAAU,CAAC,EAAExE,SAAS,CAAE;MACnEwG,OAAO,EAAEC,KAAK,CAACC,IAAI,CAAC;QAAE3H,MAAM,EAAEsD;MAAO,CAAC,CAAC,CAAChB,GAAG,CAAC,CAACsF,CAAC,EAAEC,KAAK,KAAKA,KAAK,GAAG,CAAC,CAAE;MACrE1G,KAAK,EAAEsC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEqE,QAAQ,CAAC,CAAE;MAC/BC,QAAQ,EAAG5G,KAAK,IAAKgB,YAAY,CAAC;QAAED,EAAE;QAAEE,KAAK,EAAE,aAAa;QAAEjB;MAAM,CAAC;IAAE,CACxE,CACF,EACAyE,WAAW,iBACV/H,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAyJ,WAAW;MACVE,IAAI,EAAC,QAAQ;MACbC,KAAK,EAAErG,SAAS,CAACuD,iBAAI,CAACwD,YAAY,CAAE;MACpCP,OAAO,EAAEC,KAAK,CAACC,IAAI,CAAC;QAAE3H,MAAM,EAAEwD;MAAO,CAAC,CAAC,CAAClB,GAAG,CAAC,CAACsF,CAAC,EAAEC,KAAK,KAAKA,KAAK,GAAG,CAAC,CAAE;MACrE1G,KAAK,EAAEuC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEoE,QAAQ,CAAC,CAAE;MAC/BC,QAAQ,EAAG5G,KAAK,IAAKgB,YAAY,CAAC;QAAED,EAAE;QAAEE,KAAK,EAAE,aAAa;QAAEjB;MAAM,CAAC;IAAE,CACxE,CAEC,CAEJ,CAAC,eAEPtD,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAwH,IAAI;MAACC,GAAG;MAACR,SAAS,EAAE,CAAC1G,KAAK,CAACqI,MAAM,EAAErI,KAAK,CAACgK,YAAY;IAAE,gBACtDpK,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAwH,IAAI,qBACHrH,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAA8I,IAAI;MAACC,IAAI;MAACyB,QAAQ;IAAA,GAChBrE,KAAK,GACF7C,cAAc,CAAC;MAAEI,QAAQ;MAAE+G,qBAAqB,EAAE,CAAC;MAAEhH,KAAK,EAAE0C;IAAM,CAAC,CAAC,GACpE5C,SAAS,CAACuD,iBAAI,CAAC4D,UAAU,CACzB,CAAC,eACPvK,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAA8I,IAAI;MAACQ,KAAK;MAACN,KAAK;IAAA,GACd,IAAA2B,mBAAU,EACT;MACE9G,iBAAiB;MACjB+B,MAAM;MACNiC,SAAS;MACTE,SAAS;MACTE,WAAW;MACXG,IAAI;MACJrC,WAAW;MACXC;IACF,CAAC,EACDzC,SACF,CACI,CACF,CAAC,eAEPpD,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAA4K,MAAM;MACL5B,KAAK;MACL6B,SAAS,EAAE,CAAC3F,QAAQ,IAAI,CAACO,QAAS;MAClCqF,OAAO,EAAE,CAACrF,QAAQ,GAAG,MAAMV,YAAY,CAACP,EAAE,CAAC,GAAGG;IAAU,GAEvDpB,SAAS,CAACkC,QAAQ,GAAGqB,iBAAI,CAACiE,cAAc,GAAG7F,QAAQ,GAAG4B,iBAAI,CAACkE,aAAa,GAAGlE,iBAAI,CAACmE,UAAU,CACrF,CACJ,CACF,CAAC;EAEX,CACF,CACI,CACI,CAAC,eAEb9K,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAwH,IAAI;IAACC,GAAG;IAACR,SAAS,EAAE1G,KAAK,CAAC2K;EAAO,GAC/B/E,KAAK,GAAG,CAAC,iBACRhG,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAAwH,IAAI;IAACP,SAAS,EAAE1G,KAAK,CAAC4F;EAAM,gBAC3BhG,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAA8I,IAAI;IAACC,IAAI;IAACyB,QAAQ;IAACW,KAAK,EAAE/H,QAAQ,GAAG,CAAC,GAAG;EAAE,GACzCE,cAAc,CAAC;IAAEI,QAAQ;IAAE+G,qBAAqB,EAAE,CAAC;IAAEhH,KAAK,EAAE0C,KAAK,GAAGE;EAAY,CAAC,CAC9E,CAAC,EAEN,CAAC,CAACtD,SAAS,iBACV5C,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAA8I,IAAI;IAACQ,KAAK;IAACN,KAAK,EAAE,CAAC5F,QAAS;IAACmG,IAAI,EAAEnG;EAAS,GAC1CG,SAAS,CAAC,IAAA6H,uBAAa,EAACrI,SAAS,CAAC,CAC/B,CACP,eAED5C,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAChG,WAAA,CAAA2K,YAAY,EAAApJ,QAAA;IACXY,MAAM,EAAEA,MAAM,CAACuC,MAAM,CAACkG,KAAA;MAAA,IAAC;QAAEpG;MAAS,CAAC,GAAAoG,KAAA;MAAA,OAAKpG,QAAQ;IAAA,EAAE;IAClDtC,IAAI,EAAEA,IAAK;IACX2I,OAAO,EAAC;EAAc,GAClBpI,MAAM;IACV8D,SAAS,EAAE1G,KAAK,CAACiL;EAAa,EAC/B,CACG,CACP,eAEDrL,MAAA,CAAAc,OAAA,CAAAyF,aAAA,CAAC1G,GAAA,CAAA4K,MAAM;IAACE,OAAO,EAAEvF,YAAa;IAACkB,MAAM,EAAEA,MAAM,MAAAtB,MAAA,CAAMsB,MAAM,eAAY9B;EAAU,GAC5EpB,SAAS,CAAC2C,WAAW,GAAGY,iBAAI,CAAC2E,cAAc,GAAG3E,iBAAI,CAAC4E,WAAW,CACzD,CACJ,CACD,CAAC;AAEZ,CAAC;AAACC,OAAA,CAAAjJ,WAAA,GAAAA,WAAA;AAEFA,WAAW,CAACkJ,SAAS,GAAG;EACtBhJ,IAAI,EAAEiJ,kBAAS,CAACC,OAAO,CAACD,kBAAS,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EAC5ClJ,MAAM,EAAEgJ,kBAAS,CAACC,OAAO,CAACD,kBAAS,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9ChJ,SAAS,EAAE8I,kBAAS,CAACG,MAAM;EAC3BhJ,OAAO,EAAE6I,kBAAS,CAACI,IAAI;EACvBhJ,QAAQ,EAAE4I,kBAAS,CAACK,IAAI;EACxBhJ,QAAQ,EAAE2I,kBAAS,CAACK;AACtB,CAAC;AAEDxJ,WAAW,CAACyJ,WAAW,GAAG,8BAA8B"}
1
+ {"version":3,"file":"ModalExtras.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_ModalExtras","style","_helpers2","_helpers3","_components","_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","ModalExtras","_ref","busy","cart","extras","propExtras","taxesType","visible","onCancel","onSubmit","others","isMobile","useDevice","currencyFormat","translate","useLocale","value","currency","finder","hotel","accommodationType","hotelAccommodationType","variants","useStore","setExtras","useState","useEffect","Event","publish","EVENT","METRICS","id","handleChange","field","undefined","map","extra","parseInt","handleSelect","next","_ref2","selected","concat","filter","_ref3","_ref4","handleSubmit","item","included","_ref5","_baseValue","amount","baseValue","nights","valueAmount","valueNights","price","hasSelected","total","reduce","totalExtras","_value","place","standaloneCard","testId","createElement","Modal","fit","title","L10N","LABEL_ENHANCED_YOUR_STAY","onClose","className","modal","ScrollView","scrollIndicator","scrollTo","snap","scrollView","View","row","container","accommodationThreshold","conditions","frequency","guestThreshold","guestType","image","inputGuests","inputNights","text","type","wide","styles","card","standalone","unselected","backgroundImage","gap","offset","anchor","Text","bold","small","Notification","inline","warning","LABEL_APPLIES_SELECTED_ROOMS","LABEL_APPLIES_INDIVIDUALS_RESERVATION","light","tiny","inputs","InputSelect","capitalize","name","label","getGuestLabel","plural","options","Array","from","_","index","toString","onChange","LABEL_NIGHTS","spaceBetween","headline","maximumFractionDigits","LABEL_FREE","getCaption","Button","secondary","onPress","LABEL_INCLUDED","ACTION_REMOVE","ACTION_ADD","footer","level","getLabelTaxes","PriceDetails","_ref6","metrics","priceDetails","ACTION_RESERVE","ACTION_NEXT","exports","propTypes","PropTypes","bool","arrayOf","shape","number","func","displayName"],"sources":["../../../../../src/components/Rates/components/ModalExtras/ModalExtras.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, InputSelect, Modal, Notification, ScrollView, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { getCaption } from './helpers';\nimport { L10N } from './ModalExtras.l10n';\nimport * as style from './ModalExtras.module.css';\nimport { getGuestLabel } from '../../../helpers';\nimport { EVENT } from '../../../helpers';\nimport { getLabelTaxes } from '../../helpers';\nimport { PriceDetails } from '../Item/components';\n\nconst ModalExtras = ({\n busy,\n cart = [],\n extras: propExtras = [],\n taxesType,\n visible = false,\n onCancel = () => {},\n onSubmit = () => {},\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { currencyFormat, translate } = useLocale();\n const {\n value: { currency, finder = {}, hotel: { accommodationType: hotelAccommodationType, variants = {} } = {} } = {},\n } = useStore();\n\n const [extras, setExtras] = useState(propExtras);\n\n useEffect(() => {\n if (visible) {\n setExtras(propExtras);\n Event.publish(EVENT.METRICS, { id: 'RATES:EXTRAS' });\n }\n }, [propExtras, visible]);\n\n const handleChange = ({ id, field, value } = {}) => {\n // ! Why parse Number()? should come from the service.\n setExtras(extras.map((extra) => ({ ...extra, [field]: extra.id === id ? parseInt(value) : extra[field] })));\n };\n\n const handleSelect = (id) => {\n const next = extras.map(({ selected = false, ...extra }) => ({\n ...extra,\n selected: extra.id === id ? !selected : selected,\n }));\n\n setExtras(next);\n\n Event.publish(EVENT.METRICS, {\n id: `RATES:EXTRAS:${\n next.filter(({ selected }) => selected).length > extras.filter(({ selected }) => selected).length\n ? 'ADD'\n : 'REMOVE'\n }`,\n });\n };\n\n const handleSubmit = () => {\n onSubmit(\n extras\n .filter((item) => item.selected || item.included)\n .map(({ amount, baseValue, nights, id, included, valueAmount, valueNights }) => ({\n id,\n included,\n amount: parseInt(valueAmount || amount),\n nights: parseInt(valueNights || nights),\n value: baseValue[valueAmount || amount][valueNights || nights]?.price,\n })),\n );\n };\n\n const hasSelected = extras.filter((item) => !!item.selected).length > 0;\n const total = cart.reduce((value, { price } = {}) => value + price, 0);\n const totalExtras = extras\n .filter((item) => item.selected)\n .reduce(\n (total, { amount, nights, valueAmount, valueNights, value = {} } = {}) =>\n total + (value[valueAmount || amount][valueNights || nights]?.price || 0),\n 0,\n );\n const { place: { id: [id] = [] } = {} } = finder;\n const { accommodationType = hotelAccommodationType } = variants[id] || {};\n const standaloneCard = extras.length === 1;\n const { testId } = others;\n\n return (\n <Modal\n fit\n title={translate(L10N.LABEL_ENHANCED_YOUR_STAY)}\n visible={visible}\n onClose={onCancel}\n className={style.modal}\n testId={testId}\n >\n <ScrollView scrollIndicator scrollTo={visible ? 0.5 : undefined} snap={false} className={style.scrollView}>\n <View row className={style.container}>\n {extras.map(\n ({\n accommodationThreshold = 0,\n amount = 0,\n conditions,\n frequency,\n guestThreshold = 0,\n guestType,\n id,\n image,\n included = false,\n inputGuests = false,\n inputNights = false,\n nights = 0,\n selected = false,\n text,\n title,\n type,\n value = {},\n valueAmount = amount,\n valueNights = nights,\n } = {}) => {\n const { price: total } = value[valueAmount][valueNights] || {};\n\n return (\n <View\n key={id}\n wide\n className={styles(\n style.card,\n standaloneCard && style.standalone,\n hasSelected ? (selected ? style.selected : style.unselected) : undefined,\n )}\n >\n <View className={style.image} style={{ backgroundImage: `url(${image})` }} />\n\n <View wide className={[style.gap, style.offset, style.anchor]}>\n <Text bold>{title}</Text>\n {text && <Text small>{text}</Text>}\n\n {accommodationThreshold > 0 && (\n <Notification inline small warning>\n {translate(L10N.LABEL_APPLIES_SELECTED_ROOMS, { value: accommodationThreshold })}\n </Notification>\n )}\n\n {guestThreshold > 0 && (\n <Notification inline small warning>\n {translate(L10N.LABEL_APPLIES_INDIVIDUALS_RESERVATION, { value: guestThreshold })}\n </Notification>\n )}\n\n {conditions && (\n <Text light small={!isMobile} tiny={isMobile}>\n {conditions}\n </Text>\n )}\n\n {(inputGuests || inputNights) && (\n <View row className={styles(style.gap, style.inputs)}>\n {inputGuests && (\n <InputSelect\n capitalize\n name=\"guests\"\n label={getGuestLabel({ plural: true, type: guestType }, translate)}\n options={Array.from({ length: amount }).map((_, index) => index + 1)}\n value={valueAmount?.toString()}\n onChange={(value) => handleChange({ id, field: 'valueAmount', value })}\n />\n )}\n {inputNights && (\n <InputSelect\n name=\"nights\"\n label={translate(L10N.LABEL_NIGHTS)}\n options={Array.from({ length: nights }).map((_, index) => index + 1)}\n value={valueNights?.toString()}\n onChange={(value) => handleChange({ id, field: 'valueNights', value })}\n />\n )}\n </View>\n )}\n </View>\n\n <View row className={[style.offset, style.spaceBetween]}>\n <View>\n <Text bold headline>\n {total\n ? currencyFormat({ currency, maximumFractionDigits: 0, value: total })\n : translate(L10N.LABEL_FREE)}\n </Text>\n <Text light small>\n {getCaption(\n {\n accommodationType,\n amount,\n frequency,\n guestType,\n inputGuests,\n type,\n valueAmount,\n valueNights,\n },\n translate,\n )}\n </Text>\n </View>\n\n <Button\n small\n secondary={!selected && !included}\n onPress={!included ? () => handleSelect(id) : undefined}\n >\n {translate(included ? L10N.LABEL_INCLUDED : selected ? L10N.ACTION_REMOVE : L10N.ACTION_ADD)}\n </Button>\n </View>\n </View>\n );\n },\n )}\n </View>\n </ScrollView>\n\n <View row className={style.footer}>\n {total > 0 && (\n <View className={style.total}>\n <Text bold headline level={isMobile ? 3 : 2}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: total + totalExtras })}\n </Text>\n\n {!!taxesType && (\n <Text light small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n\n <PriceDetails\n extras={extras.filter(({ selected }) => selected)}\n cart={cart}\n metrics=\"RATES:EXTRAS\"\n {...others}\n className={style.priceDetails}\n />\n </View>\n )}\n\n <Button busy={busy} onPress={handleSubmit} testId={testId ? `${testId}-submit` : undefined}>\n {translate(hasSelected ? L10N.ACTION_RESERVE : L10N.ACTION_NEXT)}\n </Button>\n </View>\n </Modal>\n );\n};\n\nModalExtras.propTypes = {\n busy: PropTypes.bool,\n cart: PropTypes.arrayOf(PropTypes.shape({})),\n extras: PropTypes.arrayOf(PropTypes.shape({})),\n taxesType: PropTypes.number,\n visible: PropTypes.bool,\n onCancel: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nModalExtras.displayName = 'Mirai:Core:Rates:ModalExtras';\n\nexport { ModalExtras };\n"],"mappings":"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"}
@@ -49,6 +49,7 @@ const ModalMapView = _ref => {
49
49
  }
50
50
  } = (0, _dataSources.useStore)();
51
51
  const mapRef = (0, _react.useRef)();
52
+ const [busy, setBusy] = (0, _react.useState)(false);
52
53
  const [map, setMap] = (0, _react.useState)();
53
54
  const [selected, setSelected] = (0, _react.useState)();
54
55
  const theme = _ui.Theme.get();
@@ -184,22 +185,23 @@ const ModalMapView = _ref => {
184
185
  value: price
185
186
  });
186
187
  const handlePress = () => {
187
- const {
188
- id
189
- } = selected;
190
- const {
191
- value
192
- } = places.find(function () {
193
- let {
194
- isHotel,
195
- id: ids = []
196
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
197
- return isHotel && ids.includes(id.toString());
198
- }) || {};
188
+ setBusy(false);
199
189
  _dataSources.Event.publish(_helpers3.EVENT.METRICS, {
200
190
  id: 'HOTELS:MAP:VIEW_MORE'
201
191
  });
202
192
  setTimeout(() => {
193
+ const {
194
+ id
195
+ } = selected;
196
+ const {
197
+ value
198
+ } = places.find(function () {
199
+ let {
200
+ isHotel,
201
+ id: ids = []
202
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
203
+ return isHotel && ids.includes(id.toString());
204
+ }) || {};
203
205
  window.location.href = "".concat(forwarder.rates).concat((0, _helpers3.toUrlParams)({
204
206
  ...(0, _helpers2.fetchUrlParams)(window.location.search),
205
207
  ...(0, _helpers4.getFinderParams)({
@@ -214,7 +216,7 @@ const ModalMapView = _ref => {
214
216
  }),
215
217
  idtokenprovider: id
216
218
  }));
217
- }, 200);
219
+ }, _helpers3.SUBMIT_DELAY);
218
220
  };
219
221
  return /*#__PURE__*/_react.default.createElement(_ui.Modal, _extends({}, others, {
220
222
  title,
@@ -263,6 +265,7 @@ const ModalMapView = _ref => {
263
265
  }), " ", translate(_ModalMapView.L10N.LABEL_PER_NIGHT))), /*#__PURE__*/_react.default.createElement(_ui.View, {
264
266
  className: style.anchor
265
267
  }), /*#__PURE__*/_react.default.createElement(_ui.Button, {
268
+ busy: busy,
266
269
  small: true,
267
270
  onPress: handlePress
268
271
  }, translate(_ModalMapView.L10N.ACTION_VIEW_MORE))))));
@@ -1 +1 @@
1
- {"version":3,"file":"ModalMapView.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_ModalMapView","style","_helpers2","_shared__","_helpers3","_helpers4","_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","memoizedSelected","ModalMapView","_ref","_selected$features","items","nights","visible","onClose","others","isMobile","useDevice","translate","useLocale","value","currency","finder","forwarder","hotel","locale","tags","options","places","useStore","mapRef","useRef","map","setMap","useState","selected","setSelected","theme","Theme","icon","label","customMarker","accent","base","place","title","useEffect","loadGMaps","then","bounds","window","google","maps","LatLngBounds","Map","current","fullscreenControl","mapTypeControl","addListener","undefined","markers","forEach","marker","dataSource","item","position","lat","latitude","lng","longitude","price","text","currencyFormat","fancy","symbol","Marker","highlightMarker","resetMarker","push","extend","fitBounds","catch","Event","publish","EVENT","NOTIFICATION","error","L10N","NOTIFICATION_ERROR_MAP","METRICS","id","panTo","itemIndex","findIndex","_ref2","index","setIcon","fillColor","strokeColor","scale","setLabel","color","priceMarker","setZIndex","handlePress","find","isHotel","ids","includes","toString","setTimeout","location","href","concat","rates","toUrlParams","fetchUrlParams","search","getFinderParams","idtokenprovider","createElement","Modal","fit","className","modal","View","ref","Card","styles","card","image","images","backgroundImage","content","Text","bold","headline","name","action","light","small","features","anchor","row","maximumFractionDigits","tiny","LABEL_PER_NIGHT","Button","onPress","ACTION_VIEW_MORE","exports","propTypes","PropTypes","arrayOf","shape","number","string","bool","func","displayName"],"sources":["../../../../../src/components/Rates/components/ModalMapView/ModalMapView.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Button, Modal, styles, Theme, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { customMarker, loadGMaps } from './helpers';\nimport { L10N } from './ModalMapView.l10n';\nimport * as style from './ModalMapView.module.css';\nimport { fetchUrlParams } from '../../../../helpers';\nimport { Card } from '../../../__shared__';\nimport { EVENT, toUrlParams } from '../../../helpers';\nimport { getFinderParams } from '../../helpers';\n\nlet memoizedSelected;\n\nconst ModalMapView = ({ items = [], nights = 1, visible, onClose, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: { currency, finder = {}, forwarder = {}, hotel, locale, tags: { options: places = [] } = {} },\n } = useStore();\n\n const mapRef = useRef();\n const [map, setMap] = useState();\n const [selected, setSelected] = useState();\n\n const theme = Theme.get();\n const { icon, label } = customMarker(theme);\n const { accent, base } = theme;\n const { place: { title } = {} } = finder || {};\n\n useEffect(() => {\n if (!visible) return;\n\n loadGMaps()\n .then(() => {\n const bounds = new window.google.maps.LatLngBounds();\n const map = new window.google.maps.Map(mapRef.current, {\n fullscreenControl: false,\n mapTypeControl: false,\n });\n\n map.addListener('click', () => setSelected());\n map.addListener('dragstart', () => setSelected());\n setMap(map);\n\n if (!visible) return;\n\n setSelected(undefined);\n map.markers = map.markers || [];\n map.markers.forEach((marker) => marker.setMap());\n map.markers = [];\n\n items.forEach((dataSource = {}) => {\n const item = { ...dataSource, position: { lat: dataSource.latitude, lng: dataSource.longitude } };\n const { price, position } = item;\n const text = currencyFormat({ currency, fancy: true, locale, symbol: true, value: price });\n const marker = new window.google.maps.Marker({ map, position, icon, label: { ...label, text } });\n\n marker.addListener('click', () => setSelected(item));\n marker.addListener('mouseover', () => highlightMarker(marker, item));\n marker.addListener('mouseout', () => (memoizedSelected !== item ? resetMarker(marker, item) : undefined));\n\n map.markers.push(marker);\n bounds.extend(position);\n });\n\n if (items.length > 0) map.fitBounds(bounds);\n })\n .catch(() => {\n Event.publish(EVENT.NOTIFICATION, { error: true, ...L10N.NOTIFICATION_ERROR_MAP });\n onClose();\n });\n\n Event.publish(EVENT.METRICS, { id: 'HOTELS:MAP' });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, visible]);\n\n useEffect(() => {\n memoizedSelected = selected;\n if (!map || !items.length) return;\n if (selected) map.panTo(selected.position);\n\n const itemIndex = selected ? items.findIndex(({ id }) => id === selected.id) : -1;\n map.markers.forEach((marker, index) => {\n index === itemIndex ? highlightMarker(marker, items[index]) : resetMarker(marker, items[index], index);\n });\n\n Event.publish(EVENT.METRICS, { id: 'HOTELS:MAP:SELECT' });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selected]);\n\n const highlightMarker = (marker, { price } = {}) => {\n marker.setIcon({ ...icon, fillColor: accent, strokeColor: accent, scale: 1.1 });\n marker.setLabel({ ...label, color: base, text: priceMarker(price) });\n marker.setZIndex(1024);\n };\n\n const resetMarker = (marker, { price } = {}, index) => {\n marker.setIcon(icon);\n marker.setLabel({ ...label, text: priceMarker(price) });\n marker.setZIndex(index);\n };\n\n const priceMarker = (price) => currencyFormat({ currency, fancy: true, locale, symbol: true, value: price });\n\n const handlePress = () => {\n const { id } = selected;\n const { value } = places.find(({ isHotel, id: ids = [] } = {}) => isHotel && ids.includes(id.toString())) || {};\n\n Event.publish(EVENT.METRICS, { id: 'HOTELS:MAP:VIEW_MORE' });\n\n setTimeout(() => {\n window.location.href = `${forwarder.rates}${toUrlParams({\n ...fetchUrlParams(window.location.search),\n ...getFinderParams({ ...finder, ...{ place: { id: undefined, value } }, hotel }),\n idtokenprovider: id,\n })}`;\n }, 200);\n };\n\n return (\n <Modal {...others} {...{ title, visible, onClose }} fit className={[style.modal, others.className]}>\n <View ref={mapRef} className={style.map} />\n\n <Card className={styles(style.card, selected && style.visible)}>\n <View\n className={style.image}\n style={selected?.images ? { backgroundImage: `url(${selected?.images[0]})` } : undefined}\n />\n <View className={style.content}>\n <Text bold headline={!isMobile}>\n {selected?.name}\n </Text>\n <Text action={!isMobile} light small={isMobile} className={style.location}>\n {selected?.features?.location}\n </Text>\n\n <View className={style.anchor} />\n\n <View row>\n <View>\n <Text bold>{currencyFormat({ currency, locale, maximumFractionDigits: 0, value: selected?.price })}</Text>\n <Text light small={!isMobile} tiny={isMobile}>\n {currencyFormat({ currency, value: selected?.price / nights })} {translate(L10N.LABEL_PER_NIGHT)}\n </Text>\n </View>\n <View className={style.anchor} />\n <Button small onPress={handlePress}>\n {translate(L10N.ACTION_VIEW_MORE)}\n </Button>\n </View>\n </View>\n </Card>\n </Modal>\n );\n};\n\nModalMapView.propTypes = {\n items: PropTypes.arrayOf(PropTypes.shape({})),\n nights: PropTypes.number,\n title: PropTypes.string,\n visible: PropTypes.bool,\n onClose: PropTypes.func,\n};\n\nModalMapView.displayName = 'Mirai:Core:Rates:ModalMapView';\n\nexport { ModalMapView };\n"],"mappings":"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"}
1
+ {"version":3,"file":"ModalMapView.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_ModalMapView","style","_helpers2","_shared__","_helpers3","_helpers4","_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","memoizedSelected","ModalMapView","_ref","_selected$features","items","nights","visible","onClose","others","isMobile","useDevice","translate","useLocale","value","currency","finder","forwarder","hotel","locale","tags","options","places","useStore","mapRef","useRef","busy","setBusy","useState","map","setMap","selected","setSelected","theme","Theme","icon","label","customMarker","accent","base","place","title","useEffect","loadGMaps","then","bounds","window","google","maps","LatLngBounds","Map","current","fullscreenControl","mapTypeControl","addListener","undefined","markers","forEach","marker","dataSource","item","position","lat","latitude","lng","longitude","price","text","currencyFormat","fancy","symbol","Marker","highlightMarker","resetMarker","push","extend","fitBounds","catch","Event","publish","EVENT","NOTIFICATION","error","L10N","NOTIFICATION_ERROR_MAP","METRICS","id","panTo","itemIndex","findIndex","_ref2","index","setIcon","fillColor","strokeColor","scale","setLabel","color","priceMarker","setZIndex","handlePress","setTimeout","find","isHotel","ids","includes","toString","location","href","concat","rates","toUrlParams","fetchUrlParams","search","getFinderParams","idtokenprovider","SUBMIT_DELAY","createElement","Modal","fit","className","modal","View","ref","Card","styles","card","image","images","backgroundImage","content","Text","bold","headline","name","action","light","small","features","anchor","row","maximumFractionDigits","tiny","LABEL_PER_NIGHT","Button","onPress","ACTION_VIEW_MORE","exports","propTypes","PropTypes","arrayOf","shape","number","string","bool","func","displayName"],"sources":["../../../../../src/components/Rates/components/ModalMapView/ModalMapView.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Button, Modal, styles, Theme, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { customMarker, loadGMaps } from './helpers';\nimport { L10N } from './ModalMapView.l10n';\nimport * as style from './ModalMapView.module.css';\nimport { fetchUrlParams } from '../../../../helpers';\nimport { Card } from '../../../__shared__';\nimport { EVENT, SUBMIT_DELAY, toUrlParams } from '../../../helpers';\nimport { getFinderParams } from '../../helpers';\n\nlet memoizedSelected;\n\nconst ModalMapView = ({ items = [], nights = 1, visible, onClose, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: { currency, finder = {}, forwarder = {}, hotel, locale, tags: { options: places = [] } = {} },\n } = useStore();\n\n const mapRef = useRef();\n const [busy, setBusy] = useState(false);\n const [map, setMap] = useState();\n const [selected, setSelected] = useState();\n\n const theme = Theme.get();\n const { icon, label } = customMarker(theme);\n const { accent, base } = theme;\n const { place: { title } = {} } = finder || {};\n\n useEffect(() => {\n if (!visible) return;\n\n loadGMaps()\n .then(() => {\n const bounds = new window.google.maps.LatLngBounds();\n const map = new window.google.maps.Map(mapRef.current, {\n fullscreenControl: false,\n mapTypeControl: false,\n });\n\n map.addListener('click', () => setSelected());\n map.addListener('dragstart', () => setSelected());\n setMap(map);\n\n if (!visible) return;\n\n setSelected(undefined);\n map.markers = map.markers || [];\n map.markers.forEach((marker) => marker.setMap());\n map.markers = [];\n\n items.forEach((dataSource = {}) => {\n const item = { ...dataSource, position: { lat: dataSource.latitude, lng: dataSource.longitude } };\n const { price, position } = item;\n const text = currencyFormat({ currency, fancy: true, locale, symbol: true, value: price });\n const marker = new window.google.maps.Marker({ map, position, icon, label: { ...label, text } });\n\n marker.addListener('click', () => setSelected(item));\n marker.addListener('mouseover', () => highlightMarker(marker, item));\n marker.addListener('mouseout', () => (memoizedSelected !== item ? resetMarker(marker, item) : undefined));\n\n map.markers.push(marker);\n bounds.extend(position);\n });\n\n if (items.length > 0) map.fitBounds(bounds);\n })\n .catch(() => {\n Event.publish(EVENT.NOTIFICATION, { error: true, ...L10N.NOTIFICATION_ERROR_MAP });\n onClose();\n });\n\n Event.publish(EVENT.METRICS, { id: 'HOTELS:MAP' });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, visible]);\n\n useEffect(() => {\n memoizedSelected = selected;\n if (!map || !items.length) return;\n if (selected) map.panTo(selected.position);\n\n const itemIndex = selected ? items.findIndex(({ id }) => id === selected.id) : -1;\n map.markers.forEach((marker, index) => {\n index === itemIndex ? highlightMarker(marker, items[index]) : resetMarker(marker, items[index], index);\n });\n\n Event.publish(EVENT.METRICS, { id: 'HOTELS:MAP:SELECT' });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selected]);\n\n const highlightMarker = (marker, { price } = {}) => {\n marker.setIcon({ ...icon, fillColor: accent, strokeColor: accent, scale: 1.1 });\n marker.setLabel({ ...label, color: base, text: priceMarker(price) });\n marker.setZIndex(1024);\n };\n\n const resetMarker = (marker, { price } = {}, index) => {\n marker.setIcon(icon);\n marker.setLabel({ ...label, text: priceMarker(price) });\n marker.setZIndex(index);\n };\n\n const priceMarker = (price) => currencyFormat({ currency, fancy: true, locale, symbol: true, value: price });\n\n const handlePress = () => {\n setBusy(false);\n Event.publish(EVENT.METRICS, { id: 'HOTELS:MAP:VIEW_MORE' });\n\n setTimeout(() => {\n const { id } = selected;\n const { value } = places.find(({ isHotel, id: ids = [] } = {}) => isHotel && ids.includes(id.toString())) || {};\n\n window.location.href = `${forwarder.rates}${toUrlParams({\n ...fetchUrlParams(window.location.search),\n ...getFinderParams({ ...finder, ...{ place: { id: undefined, value } }, hotel }),\n idtokenprovider: id,\n })}`;\n }, SUBMIT_DELAY);\n };\n\n return (\n <Modal {...others} {...{ title, visible, onClose }} fit className={[style.modal, others.className]}>\n <View ref={mapRef} className={style.map} />\n\n <Card className={styles(style.card, selected && style.visible)}>\n <View\n className={style.image}\n style={selected?.images ? { backgroundImage: `url(${selected?.images[0]})` } : undefined}\n />\n <View className={style.content}>\n <Text bold headline={!isMobile}>\n {selected?.name}\n </Text>\n <Text action={!isMobile} light small={isMobile} className={style.location}>\n {selected?.features?.location}\n </Text>\n\n <View className={style.anchor} />\n\n <View row>\n <View>\n <Text bold>{currencyFormat({ currency, locale, maximumFractionDigits: 0, value: selected?.price })}</Text>\n <Text light small={!isMobile} tiny={isMobile}>\n {currencyFormat({ currency, value: selected?.price / nights })} {translate(L10N.LABEL_PER_NIGHT)}\n </Text>\n </View>\n <View className={style.anchor} />\n <Button busy={busy} small onPress={handlePress}>\n {translate(L10N.ACTION_VIEW_MORE)}\n </Button>\n </View>\n </View>\n </Card>\n </Modal>\n );\n};\n\nModalMapView.propTypes = {\n items: PropTypes.arrayOf(PropTypes.shape({})),\n nights: PropTypes.number,\n title: PropTypes.string,\n visible: PropTypes.bool,\n onClose: PropTypes.func,\n};\n\nModalMapView.displayName = 'Mirai:Core:Rates:ModalMapView';\n\nexport { ModalMapView };\n"],"mappings":"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"}
@@ -53,9 +53,21 @@ exports[`<Rates> <ModalMapView> renders 1`] = `
53
53
  />
54
54
  <ui-button
55
55
  class="pressable button small"
56
+ disabled="false"
56
57
  tabindex="0"
57
58
  >
58
- common.action.view_more
59
+ <ui-view
60
+ class="view busyContainer"
61
+ >
62
+ <ui-view
63
+ class="view spinner"
64
+ />
65
+ </ui-view>
66
+ <ui-view
67
+ class="view row children"
68
+ >
69
+ common.action.view_more
70
+ </ui-view>
59
71
  </ui-button>
60
72
  </ui-view>
61
73
  </ui-view>
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.STEP = exports.PAYMENT_PROVIDER = exports.PAYMENT_METHOD = exports.PAYMENT_CARD_VALIDATION_PROVIDER = exports.PAYMENT_CARD = exports.OCCUPATION_TYPE = exports.MONTHS_IN_MOBILE = exports.LOCALES = exports.EVENT = exports.CALENDAR_FORMAT = exports.ACCOMMODATION_TYPE = void 0;
6
+ exports.SUBMIT_DELAY = exports.STEP = exports.PAYMENT_PROVIDER = exports.PAYMENT_METHOD = exports.PAYMENT_CARD_VALIDATION_PROVIDER = exports.PAYMENT_CARD = exports.OCCUPATION_TYPE = exports.MONTHS_IN_MOBILE = exports.LOCALES = exports.EVENT = exports.CALENDAR_FORMAT = exports.ACCOMMODATION_TYPE = void 0;
7
7
  var _ui = require("@mirai/ui");
8
8
  const ACCOMMODATION_TYPE = exports.ACCOMMODATION_TYPE = {
9
9
  ROOM: 1,
@@ -104,4 +104,5 @@ const STEP = exports.STEP = {
104
104
  HOTELS: 'CHAINRESULT',
105
105
  RATES: 'BOOKINGSTEP1'
106
106
  };
107
+ const SUBMIT_DELAY = exports.SUBMIT_DELAY = 800;
107
108
  //# sourceMappingURL=constants.js.map