@mirai/core 0.3.207 → 0.3.209
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.
- package/build/Core.js +51 -48
- package/build/Core.js.map +1 -1
- package/build/components/Finder/Finder.js +20 -7
- package/build/components/Finder/Finder.js.map +1 -1
- package/build/components/Finder/components/Places/Places.js +3 -1
- package/build/components/Finder/components/Places/Places.js.map +1 -1
- package/build/components/Finder/helpers/getForwarderUrl.js +1 -1
- package/build/components/Finder/helpers/getForwarderUrl.js.map +1 -1
- package/build/components/Rates/Rates.Unavailability.js +15 -9
- package/build/components/Rates/Rates.Unavailability.js.map +1 -1
- package/build/components/Rates/Rates.constants.js +1 -1
- package/build/components/Rates/Rates.constants.js.map +1 -1
- package/build/components/Rates/Rates.js +4 -0
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/Rates.l10n.js +6 -0
- package/build/components/Rates/Rates.l10n.js.map +1 -1
- package/build/components/Rates/components/CardHotel/CardHotel.js +9 -11
- package/build/components/Rates/components/CardHotel/CardHotel.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Rates.js +8 -1
- package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
- package/build/components/Rates/components/Item/Item.js +1 -0
- package/build/components/Rates/components/Item/Item.js.map +1 -1
- package/build/components/Rates/components/Item/Item.l10n.js +6 -0
- package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
- package/build/components/Rates/components/Item/components/Features/Features.js +4 -6
- package/build/components/Rates/components/Item/components/Features/Features.js.map +1 -1
- package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +12 -6
- package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +3 -0
- package/build/services/Rates/constants.js +1 -1
- package/build/services/Rates/constants.js.map +1 -1
- package/build/services/Rates/extras.js +3 -1
- package/build/services/Rates/extras.js.map +1 -1
- package/build/services/Rates/helpers/getCalendarSuggestions.js +5 -5
- package/build/services/Rates/helpers/getCalendarSuggestions.js.map +1 -1
- package/build/services/Rates/helpers/getItems.js +13 -10
- package/build/services/Rates/helpers/getItems.js.map +1 -1
- package/build/services/Rates/helpers/getOccupationSuggestions.js +8 -2
- package/build/services/Rates/helpers/getOccupationSuggestions.js.map +1 -1
- package/build/services/Rates/helpers/parseUnavailability.js +2 -1
- package/build/services/Rates/helpers/parseUnavailability.js.map +1 -1
- package/build/services/Rates/rates.js +2 -1
- package/build/services/Rates/rates.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.js","names":["_ui","require","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","style","_Item","_Item2","_Item3","_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","Item","_ref","boards","cancellations","cart","selected","features","rates","others","selectedBoard","setSelectedBoard","useState","useEffect","id","cancellationId","rateId","nextBoard","find","board","handleBoard","handleCancellation","_ref2","handleRate","_ref3","findPrice","dataSource","undefined","item","price","showAllBoards","showAllOffers","showOffersFirst","cancellationPrice","ratePrice","visibleBoards","filter","props","map","increment","boardCancellationPrice","boardRatePrice","disabled","visible","name","push","sort","b","rate","selectedCancellation","createElement","View","className","card","unselected","Preview","Rates","onBoard","onCancellation","onRate","Summary","exports","displayName","propTypes","PropTypes","arrayOf","shape","string","bool"],"sources":["../../../../../src/components/Rates/components/Item/Item.jsx"],"sourcesContent":["import { View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport * as style from './Item.module.css';\nimport { Preview } from './Item.Preview';\nimport { Rates } from './Item.Rates';\nimport { Summary } from './Item.Summary';\n\nconst Item = ({ boards = [], cancellations = [], cart: selected, features = {}, rates = [], ...others }) => {\n const [selectedBoard, setSelectedBoard] = useState();\n\n useEffect(() => {\n if (selectedBoard) return;\n\n const [{ id: cancellationId } = {}] = cancellations;\n const [{ id: rateId } = {}] = rates;\n const nextBoard = boards.find((board) => board.cancellationId === cancellationId && board.rateId === rateId);\n\n if (nextBoard) setSelectedBoard(nextBoard);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [boards]);\n\n useEffect(() => {\n if (!selected) return;\n\n const nextBoard = boards.find((board) => board.id === selected.id);\n if (nextBoard) setSelectedBoard(nextBoard);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selected]);\n\n const handleBoard = (board) => {\n setSelectedBoard(board);\n };\n\n const handleCancellation = (id) => {\n setSelectedBoard(boards.find(({ cancellationId }) => cancellationId === id));\n };\n\n const handleRate = ({ id, cancellationId }) => {\n setSelectedBoard(boards.find((board) => board.cancellationId === cancellationId && board.rateId == id));\n };\n\n const findPrice = (id, dataSource = []) => (dataSource.find((item = {}) => item.id === id) || {}).price || 0;\n\n const { showAllBoards, showAllOffers, showOffersFirst } = features;\n const { id, cancellationId, rateId } = selectedBoard || {};\n const cancellationPrice = findPrice(cancellationId, cancellations);\n const ratePrice = findPrice(rateId, rates);\n const visibleBoards = boards.filter((board) => board.cancellationId === cancellationId && board.rateId === rateId);\n\n const props = {\n ...others,\n boards: showAllBoards\n ? boards\n .map((board) => {\n const selectedBoard = board.cancellationId === cancellationId && board.rateId === rateId;\n let { increment } = board;\n\n if (!selectedBoard) {\n const boardCancellationPrice = findPrice(board.cancellationId, cancellations);\n const boardRatePrice = findPrice(board.rateId, rates);\n increment = increment - (cancellationPrice + ratePrice) + boardCancellationPrice + boardRatePrice;\n }\n\n return { ...board, disabled: !selectedBoard, increment };\n })\n .filter((board) => {\n if (!board.disabled) return true;\n\n const visible = !visibleBoards.find((item) => item.name === board.name);\n if (visible) visibleBoards.push(board);\n\n return visible;\n })\n .sort((a, b) => a.increment - b.increment)\n : visibleBoards,\n cancellations,\n features,\n rates: showOffersFirst\n ? rates\n .map((rate) => ({ ...rate, price: rate.price + findPrice(rate.cancellationId, cancellations) }))\n .sort((a, b) => a.price - b.price)\n : showAllOffers\n ? rates\n .map((rate) => {\n const selectedCancellation = rate.cancellationId === cancellationId;\n const price = selectedCancellation\n ? rate.price\n : rate.price - cancellationPrice + findPrice(rate.cancellationId, cancellations);\n\n return { ...rate, disabled: !showOffersFirst && !selectedCancellation, price };\n })\n .sort((a, b) => a.price - b.price)\n : rates.filter((rate) => rate.cancellationId === cancellationId),\n selected,\n selectedBoard,\n };\n\n return (\n <View\n className={[\n style.card,\n selected?.id === id && style.selected,\n selected && selected.id !== id && style.unselected,\n others.className,\n ]}\n >\n <Preview {...props} />\n <Rates {...props} onBoard={handleBoard} onCancellation={handleCancellation} onRate={handleRate} />\n <Summary {...props} />\n </View>\n );\n};\n\nItem.displayName = 'Mirai:Core:Rates:Item';\n\nItem.propTypes = {\n boards: PropTypes.arrayOf(PropTypes.shape({})),\n cancellations: PropTypes.arrayOf(PropTypes.shape({})),\n cart: PropTypes.shape({\n id: PropTypes.string,\n }),\n features: PropTypes.shape({}),\n rates: PropTypes.arrayOf(PropTypes.shape({})),\n showAllOffers: PropTypes.bool,\n};\n\nexport { Item };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Item.js","names":["_ui","require","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","style","_Item","_Item2","_Item3","_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","Item","_ref","boards","cancellations","cart","selected","features","rates","others","selectedBoard","setSelectedBoard","useState","useEffect","id","cancellationId","rateId","nextBoard","find","board","handleBoard","handleCancellation","_ref2","handleRate","_ref3","findPrice","dataSource","undefined","item","price","showAllBoards","showAllOffers","showOffersFirst","cancellationPrice","ratePrice","visibleBoards","filter","props","allBoards","map","increment","boardCancellationPrice","boardRatePrice","disabled","visible","name","push","sort","b","rate","selectedCancellation","createElement","View","className","card","unselected","Preview","Rates","onBoard","onCancellation","onRate","Summary","exports","displayName","propTypes","PropTypes","arrayOf","shape","string","bool"],"sources":["../../../../../src/components/Rates/components/Item/Item.jsx"],"sourcesContent":["import { View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport * as style from './Item.module.css';\nimport { Preview } from './Item.Preview';\nimport { Rates } from './Item.Rates';\nimport { Summary } from './Item.Summary';\n\nconst Item = ({ boards = [], cancellations = [], cart: selected, features = {}, rates = [], ...others }) => {\n const [selectedBoard, setSelectedBoard] = useState();\n\n useEffect(() => {\n if (selectedBoard) return;\n\n const [{ id: cancellationId } = {}] = cancellations;\n const [{ id: rateId } = {}] = rates;\n const nextBoard = boards.find((board) => board.cancellationId === cancellationId && board.rateId === rateId);\n\n if (nextBoard) setSelectedBoard(nextBoard);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [boards]);\n\n useEffect(() => {\n if (!selected) return;\n\n const nextBoard = boards.find((board) => board.id === selected.id);\n if (nextBoard) setSelectedBoard(nextBoard);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selected]);\n\n const handleBoard = (board) => {\n setSelectedBoard(board);\n };\n\n const handleCancellation = (id) => {\n setSelectedBoard(boards.find(({ cancellationId }) => cancellationId === id));\n };\n\n const handleRate = ({ id, cancellationId }) => {\n setSelectedBoard(boards.find((board) => board.cancellationId === cancellationId && board.rateId == id));\n };\n\n const findPrice = (id, dataSource = []) => (dataSource.find((item = {}) => item.id === id) || {}).price || 0;\n\n const { showAllBoards, showAllOffers, showOffersFirst } = features;\n const { id, cancellationId, rateId } = selectedBoard || {};\n const cancellationPrice = findPrice(cancellationId, cancellations);\n const ratePrice = findPrice(rateId, rates);\n const visibleBoards = boards.filter((board) => board.cancellationId === cancellationId && board.rateId === rateId);\n\n const props = {\n ...others,\n allBoards: boards,\n boards: showAllBoards\n ? boards\n .map((board) => {\n const selectedBoard = board.cancellationId === cancellationId && board.rateId === rateId;\n let { increment } = board;\n\n if (!selectedBoard) {\n const boardCancellationPrice = findPrice(board.cancellationId, cancellations);\n const boardRatePrice = findPrice(board.rateId, rates);\n increment = increment - (cancellationPrice + ratePrice) + boardCancellationPrice + boardRatePrice;\n }\n\n return { ...board, disabled: !selectedBoard, increment };\n })\n .filter((board) => {\n if (!board.disabled) return true;\n\n const visible = !visibleBoards.find((item) => item.name === board.name);\n if (visible) visibleBoards.push(board);\n\n return visible;\n })\n .sort((a, b) => a.increment - b.increment)\n : visibleBoards,\n cancellations,\n features,\n rates: showOffersFirst\n ? rates\n .map((rate) => ({ ...rate, price: rate.price + findPrice(rate.cancellationId, cancellations) }))\n .sort((a, b) => a.price - b.price)\n : showAllOffers\n ? rates\n .map((rate) => {\n const selectedCancellation = rate.cancellationId === cancellationId;\n const price = selectedCancellation\n ? rate.price\n : rate.price - cancellationPrice + findPrice(rate.cancellationId, cancellations);\n\n return { ...rate, disabled: !showOffersFirst && !selectedCancellation, price };\n })\n .sort((a, b) => a.price - b.price)\n : rates.filter((rate) => rate.cancellationId === cancellationId),\n selected,\n selectedBoard,\n };\n\n return (\n <View\n className={[\n style.card,\n selected?.id === id && style.selected,\n selected && selected.id !== id && style.unselected,\n others.className,\n ]}\n >\n <Preview {...props} />\n <Rates {...props} onBoard={handleBoard} onCancellation={handleCancellation} onRate={handleRate} />\n <Summary {...props} />\n </View>\n );\n};\n\nItem.displayName = 'Mirai:Core:Rates:Item';\n\nItem.propTypes = {\n boards: PropTypes.arrayOf(PropTypes.shape({})),\n cancellations: PropTypes.arrayOf(PropTypes.shape({})),\n cart: PropTypes.shape({\n id: PropTypes.string,\n }),\n features: PropTypes.shape({}),\n rates: PropTypes.arrayOf(PropTypes.shape({})),\n showAllOffers: PropTypes.bool,\n};\n\nexport { Item };\n"],"mappings":"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"}
|
|
@@ -5,6 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.L10N = void 0;
|
|
7
7
|
const L10N = exports.L10N = {
|
|
8
|
+
ACTION_BED_INFO: {
|
|
9
|
+
id: 'finder.action.bed_info'
|
|
10
|
+
},
|
|
8
11
|
ACTION_MORE_INFO: {
|
|
9
12
|
id: 'common.action.more_info'
|
|
10
13
|
},
|
|
@@ -52,6 +55,9 @@ const L10N = exports.L10N = {
|
|
|
52
55
|
id: 'finder.label.discount_promotion'
|
|
53
56
|
}
|
|
54
57
|
},
|
|
58
|
+
LABEL_DOUBLE_BED_WIDTH: {
|
|
59
|
+
id: 'finder.label.double_bed_width'
|
|
60
|
+
},
|
|
55
61
|
LABEL_EXTRAS: {
|
|
56
62
|
id: 'common.label.extras'
|
|
57
63
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.l10n.js","names":["L10N","exports","
|
|
1
|
+
{"version":3,"file":"Item.l10n.js","names":["L10N","exports","ACTION_BED_INFO","id","ACTION_MORE_INFO","ACTION_RESERVE","ACTION_VIEW_MORE","LABEL_ACCOMMODATION_PLAN","LABEL_BASE_PRICE","LABEL_BED_DISPOSITION","LABEL_CANCELLATION_POLICY","LABEL_CLUB_MEMBERS","LABEL_DESCRIPTION","LABEL_DESELECT","LABEL_DISCOUNT","LABEL_DISCOUNT_INCLUDED","LABEL_DISCOUNT_TYPE","LABEL_DOUBLE_BED_WIDTH","LABEL_EXTRAS","LABEL_FEES","LABEL_INCLUDED","LABEL_LIMITED_OFFER","LABEL_MAX_OCCUPATION","LABEL_MORE_SERVICES","LABEL_OFFER","LABEL_ONLY_MEMBERS","LABEL_OR","LABEL_PAYMENT_TERMS","LABEL_PER_NIGHT","LABEL_PRICE_DETAILS","LABEL_REMAINING_ITEMS","LABEL_SELECT","LABEL_SELECTED_OCCUPATION","LABEL_TAXES","LABEL_TOP_AMENITIES","LABEL_TOTAL","LABEL_YEARS_OLD","LABEL_WHATS_INCLUDED"],"sources":["../../../../../src/components/Rates/components/Item/Item.l10n.js"],"sourcesContent":["export const L10N = {\n ACTION_BED_INFO: { id: 'finder.action.bed_info' },\n ACTION_MORE_INFO: { id: 'common.action.more_info' },\n ACTION_RESERVE: { id: 'common.action.reserve' },\n ACTION_VIEW_MORE: { id: 'common.action.view_more' },\n\n LABEL_ACCOMMODATION_PLAN: { id: 'finder.label.accommodation_plan' },\n LABEL_BASE_PRICE: { id: 'common.label.base_price' },\n LABEL_BED_DISPOSITION: { id: 'finder.label.bed_disposition' },\n LABEL_CANCELLATION_POLICY: { id: 'common.label.cancellation_policy' },\n LABEL_CLUB_MEMBERS: { id: 'finder.label.club_members' },\n LABEL_DESCRIPTION: { id: 'common.label.description' },\n LABEL_DESELECT: { id: 'common.label.deselect' },\n LABEL_DISCOUNT: { id: 'finder.label.discount' },\n LABEL_DISCOUNT_INCLUDED: { id: 'finder.label.discount_included' },\n LABEL_DISCOUNT_TYPE: {\n 0: { id: 'finder.label.discount_club' },\n 1: { id: 'finder.label.discount_deal' },\n 2: { id: 'finder.label.discount_promotion' },\n },\n LABEL_DOUBLE_BED_WIDTH: { id: 'finder.label.double_bed_width' },\n LABEL_EXTRAS: { id: 'common.label.extras' },\n LABEL_FEES: { id: 'finder.label.fees' },\n LABEL_INCLUDED: { id: 'common.label.included' },\n LABEL_LIMITED_OFFER: { id: 'finder.label.limited_offer' },\n LABEL_MAX_OCCUPATION: { id: 'common.label.max_occupation' },\n LABEL_MORE_SERVICES: { id: 'finder.label.more_services' },\n LABEL_OFFER: { id: 'common.label.offer' },\n LABEL_ONLY_MEMBERS: { id: 'finder.label.only_members' },\n LABEL_OR: { id: 'common.label.or' },\n LABEL_PAYMENT_TERMS: { id: 'common.label.payment_terms' },\n LABEL_PER_NIGHT: { id: 'finder.label.per_night' },\n LABEL_PRICE_DETAILS: { id: 'finder.label.price_details' },\n LABEL_REMAINING_ITEMS: { id: 'finder.label.remaining_items' },\n LABEL_SELECT: { id: 'common.label.select' },\n LABEL_SELECTED_OCCUPATION: { id: 'common.label.selected_occupation' },\n LABEL_TAXES: { id: 'finder.label.taxes' },\n LABEL_TOP_AMENITIES: { id: 'finder.label.top_amenities' },\n LABEL_TOTAL: { id: 'common.label.total' },\n LABEL_YEARS_OLD: { id: 'common.label.years_old' },\n LABEL_WHATS_INCLUDED: { id: 'finder.label.whats_included' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,eAAe,EAAE;IAAEC,EAAE,EAAE;EAAyB,CAAC;EACjDC,gBAAgB,EAAE;IAAED,EAAE,EAAE;EAA0B,CAAC;EACnDE,cAAc,EAAE;IAAEF,EAAE,EAAE;EAAwB,CAAC;EAC/CG,gBAAgB,EAAE;IAAEH,EAAE,EAAE;EAA0B,CAAC;EAEnDI,wBAAwB,EAAE;IAAEJ,EAAE,EAAE;EAAkC,CAAC;EACnEK,gBAAgB,EAAE;IAAEL,EAAE,EAAE;EAA0B,CAAC;EACnDM,qBAAqB,EAAE;IAAEN,EAAE,EAAE;EAA+B,CAAC;EAC7DO,yBAAyB,EAAE;IAAEP,EAAE,EAAE;EAAmC,CAAC;EACrEQ,kBAAkB,EAAE;IAAER,EAAE,EAAE;EAA4B,CAAC;EACvDS,iBAAiB,EAAE;IAAET,EAAE,EAAE;EAA2B,CAAC;EACrDU,cAAc,EAAE;IAAEV,EAAE,EAAE;EAAwB,CAAC;EAC/CW,cAAc,EAAE;IAAEX,EAAE,EAAE;EAAwB,CAAC;EAC/CY,uBAAuB,EAAE;IAAEZ,EAAE,EAAE;EAAiC,CAAC;EACjEa,mBAAmB,EAAE;IACnB,CAAC,EAAE;MAAEb,EAAE,EAAE;IAA6B,CAAC;IACvC,CAAC,EAAE;MAAEA,EAAE,EAAE;IAA6B,CAAC;IACvC,CAAC,EAAE;MAAEA,EAAE,EAAE;IAAkC;EAC7C,CAAC;EACDc,sBAAsB,EAAE;IAAEd,EAAE,EAAE;EAAgC,CAAC;EAC/De,YAAY,EAAE;IAAEf,EAAE,EAAE;EAAsB,CAAC;EAC3CgB,UAAU,EAAE;IAAEhB,EAAE,EAAE;EAAoB,CAAC;EACvCiB,cAAc,EAAE;IAAEjB,EAAE,EAAE;EAAwB,CAAC;EAC/CkB,mBAAmB,EAAE;IAAElB,EAAE,EAAE;EAA6B,CAAC;EACzDmB,oBAAoB,EAAE;IAAEnB,EAAE,EAAE;EAA8B,CAAC;EAC3DoB,mBAAmB,EAAE;IAAEpB,EAAE,EAAE;EAA6B,CAAC;EACzDqB,WAAW,EAAE;IAAErB,EAAE,EAAE;EAAqB,CAAC;EACzCsB,kBAAkB,EAAE;IAAEtB,EAAE,EAAE;EAA4B,CAAC;EACvDuB,QAAQ,EAAE;IAAEvB,EAAE,EAAE;EAAkB,CAAC;EACnCwB,mBAAmB,EAAE;IAAExB,EAAE,EAAE;EAA6B,CAAC;EACzDyB,eAAe,EAAE;IAAEzB,EAAE,EAAE;EAAyB,CAAC;EACjD0B,mBAAmB,EAAE;IAAE1B,EAAE,EAAE;EAA6B,CAAC;EACzD2B,qBAAqB,EAAE;IAAE3B,EAAE,EAAE;EAA+B,CAAC;EAC7D4B,YAAY,EAAE;IAAE5B,EAAE,EAAE;EAAsB,CAAC;EAC3C6B,yBAAyB,EAAE;IAAE7B,EAAE,EAAE;EAAmC,CAAC;EACrE8B,WAAW,EAAE;IAAE9B,EAAE,EAAE;EAAqB,CAAC;EACzC+B,mBAAmB,EAAE;IAAE/B,EAAE,EAAE;EAA6B,CAAC;EACzDgC,WAAW,EAAE;IAAEhC,EAAE,EAAE;EAAqB,CAAC;EACzCiC,eAAe,EAAE;IAAEjC,EAAE,EAAE;EAAyB,CAAC;EACjDkC,oBAAoB,EAAE;IAAElC,EAAE,EAAE;EAA8B;AAC5D,CAAC"}
|
|
@@ -21,7 +21,7 @@ const Features = _ref => {
|
|
|
21
21
|
let {
|
|
22
22
|
bedDisposition: [bedDisposition = []] = [],
|
|
23
23
|
features: {
|
|
24
|
-
|
|
24
|
+
showMaxOccupation = false
|
|
25
25
|
} = {},
|
|
26
26
|
maxOccupation: roomMaxOccupation = 2,
|
|
27
27
|
occupation: roomOccupation = [],
|
|
@@ -49,7 +49,7 @@ const Features = _ref => {
|
|
|
49
49
|
};
|
|
50
50
|
let occupation = roomOccupation;
|
|
51
51
|
let maxOccupation = roomMaxOccupation;
|
|
52
|
-
if (
|
|
52
|
+
if (!showMaxOccupation && finderOccupation[room]) {
|
|
53
53
|
occupation = finderOccupation[room];
|
|
54
54
|
maxOccupation = occupation.reduce(function (total) {
|
|
55
55
|
let {
|
|
@@ -92,13 +92,11 @@ const Features = _ref => {
|
|
|
92
92
|
}) : /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
93
93
|
row: true,
|
|
94
94
|
className: style.item
|
|
95
|
-
}, /*#__PURE__*/_react.default.createElement(_ui.
|
|
96
|
-
value: _helpers.ICON.BED_DOUBLE
|
|
97
|
-
})), /*#__PURE__*/_react.default.createElement(_ui.Action, _extends({
|
|
95
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Action, _extends({
|
|
98
96
|
inline: true
|
|
99
97
|
}, textProps, {
|
|
100
98
|
onPress: onMoreInfo
|
|
101
|
-
}), translate(_Item.L10N.
|
|
99
|
+
}), translate(_Item.L10N.ACTION_BED_INFO))));
|
|
102
100
|
};
|
|
103
101
|
exports.Features = Features;
|
|
104
102
|
Features.propTypes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Features.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","style","_interopRequireWildcard","_helpers","_Rates","_Item","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Features","_ref","bedDisposition","features","showSelectedOccupation","maxOccupation","roomMaxOccupation","occupation","roomOccupation","room","size","onMoreInfo","others","translate","useLocale","value","finder","finderOccupation","useStore","iconProps","headline","level","textProps","small","reduce","total","amount","undefined","createElement","View","row","className","styles","item","Icon","ICON","SIZE","Text","Tooltip","text","map","getOccupationLabel","ages","join","PERSON","GROUP","GROUPS","_ref2","type","concat","BED_TYPE","DOUBLE","BED_DOUBLE","BED_SINGLE","Action","inline","onPress","L10N","ACTION_MORE_INFO","exports","propTypes","PropTypes","arrayOf","shape","number","string","func","displayName"],"sources":["../../../../../../../src/components/Rates/components/Item/components/Features/Features.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Action, Icon, styles, Text, Tooltip, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport * as style from './Features.module.css';\nimport { getOccupationLabel, ICON } from '../../../../../helpers';\nimport { BED_TYPE } from '../../../../Rates.constants';\nimport { L10N } from '../../Item.l10n';\n\nconst Features = ({\n bedDisposition: [bedDisposition = []] = [],\n features: { showSelectedOccupation = false } = {},\n maxOccupation: roomMaxOccupation = 2,\n occupation: roomOccupation = [],\n room = 0,\n size,\n onMoreInfo,\n ...others\n}) => {\n const { translate } = useLocale();\n const {\n value: { finder: { occupation: finderOccupation = [] } = {} },\n } = useStore();\n\n const iconProps = { headline: true, level: 3 };\n const textProps = { small: true };\n\n let occupation = roomOccupation;\n let maxOccupation = roomMaxOccupation;\n\n if (showSelectedOccupation && finderOccupation[room]) {\n occupation = finderOccupation[room];\n maxOccupation = occupation.reduce((total, { amount } = {}) => (total += amount), 0);\n }\n\n return (\n <View row className={styles(style.features, others.className)}>\n {size && (\n <View row className={style.item}>\n <Icon {...iconProps} value={ICON.SIZE} />\n <Text {...textProps}>{size}</Text>\n </View>\n )}\n\n {maxOccupation > 0 && (\n <Tooltip\n text={occupation.map((item) => getOccupationLabel({ ...item, ages: [] }, translate)).join(' + ')}\n className={style.item}\n >\n <View row className={style.item}>\n <Icon\n {...iconProps}\n value={maxOccupation === 1 ? ICON.PERSON : maxOccupation === 2 ? ICON.GROUP : ICON.GROUPS}\n />\n <Text {...textProps}>{maxOccupation}</Text>\n </View>\n </Tooltip>\n )}\n\n {bedDisposition.length === 1 ? (\n bedDisposition.map(({ amount = 1, type }) => (\n <View key={`bed:${type}`} row className={style.item}>\n <Icon {...iconProps} value={type === BED_TYPE.DOUBLE ? ICON.BED_DOUBLE : ICON.BED_SINGLE} />\n <Text {...textProps}>{`x${amount}`}</Text>\n </View>\n ))\n ) : (\n <View row className={style.item}>\n <Icon {...iconProps} value={ICON.BED_DOUBLE} />\n <Action inline {...textProps} onPress={onMoreInfo}>\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n </View>\n )}\n </View>\n );\n};\n\nFeatures.propTypes = {\n bedDisposition: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n features: PropTypes.shape({}),\n maxOccupation: PropTypes.number,\n occupation: PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n room: PropTypes.number,\n size: PropTypes.string,\n onMoreInfo: PropTypes.func,\n};\n\nFeatures.displayName = 'Mirai:Core:Rates:Item:Features';\n\nexport { Features };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Features.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","style","_interopRequireWildcard","_helpers","_Rates","_Item","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Features","_ref","bedDisposition","features","showMaxOccupation","maxOccupation","roomMaxOccupation","occupation","roomOccupation","room","size","onMoreInfo","others","translate","useLocale","value","finder","finderOccupation","useStore","iconProps","headline","level","textProps","small","reduce","total","amount","undefined","createElement","View","row","className","styles","item","Icon","ICON","SIZE","Text","Tooltip","text","map","getOccupationLabel","ages","join","PERSON","GROUP","GROUPS","_ref2","type","concat","BED_TYPE","DOUBLE","BED_DOUBLE","BED_SINGLE","Action","inline","onPress","L10N","ACTION_BED_INFO","exports","propTypes","PropTypes","arrayOf","shape","number","string","func","displayName"],"sources":["../../../../../../../src/components/Rates/components/Item/components/Features/Features.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Action, Icon, styles, Text, Tooltip, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport * as style from './Features.module.css';\nimport { getOccupationLabel, ICON } from '../../../../../helpers';\nimport { BED_TYPE } from '../../../../Rates.constants';\nimport { L10N } from '../../Item.l10n';\n\nconst Features = ({\n bedDisposition: [bedDisposition = []] = [],\n features: { showMaxOccupation = false } = {},\n maxOccupation: roomMaxOccupation = 2,\n occupation: roomOccupation = [],\n room = 0,\n size,\n onMoreInfo,\n ...others\n}) => {\n const { translate } = useLocale();\n const {\n value: { finder: { occupation: finderOccupation = [] } = {} },\n } = useStore();\n\n const iconProps = { headline: true, level: 3 };\n const textProps = { small: true };\n\n let occupation = roomOccupation;\n let maxOccupation = roomMaxOccupation;\n\n if (!showMaxOccupation && finderOccupation[room]) {\n occupation = finderOccupation[room];\n maxOccupation = occupation.reduce((total, { amount } = {}) => (total += amount), 0);\n }\n\n return (\n <View row className={styles(style.features, others.className)}>\n {size && (\n <View row className={style.item}>\n <Icon {...iconProps} value={ICON.SIZE} />\n <Text {...textProps}>{size}</Text>\n </View>\n )}\n\n {maxOccupation > 0 && (\n <Tooltip\n text={occupation.map((item) => getOccupationLabel({ ...item, ages: [] }, translate)).join(' + ')}\n className={style.item}\n >\n <View row className={style.item}>\n <Icon\n {...iconProps}\n value={maxOccupation === 1 ? ICON.PERSON : maxOccupation === 2 ? ICON.GROUP : ICON.GROUPS}\n />\n <Text {...textProps}>{maxOccupation}</Text>\n </View>\n </Tooltip>\n )}\n\n {bedDisposition.length === 1 ? (\n bedDisposition.map(({ amount = 1, type }) => (\n <View key={`bed:${type}`} row className={style.item}>\n <Icon {...iconProps} value={type === BED_TYPE.DOUBLE ? ICON.BED_DOUBLE : ICON.BED_SINGLE} />\n <Text {...textProps}>{`x${amount}`}</Text>\n </View>\n ))\n ) : (\n <View row className={style.item}>\n <Action inline {...textProps} onPress={onMoreInfo}>\n {translate(L10N.ACTION_BED_INFO)}\n </Action>\n </View>\n )}\n </View>\n );\n};\n\nFeatures.propTypes = {\n bedDisposition: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n features: PropTypes.shape({}),\n maxOccupation: PropTypes.number,\n occupation: PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n room: PropTypes.number,\n size: PropTypes.string,\n onMoreInfo: PropTypes.func,\n};\n\nFeatures.displayName = 'Mirai:Core:Rates:Item:Features';\n\nexport { Features };\n"],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ const ModalInfo = _ref => {
|
|
|
22
22
|
let {
|
|
23
23
|
bedDisposition = [],
|
|
24
24
|
description,
|
|
25
|
+
doubleBedWidth,
|
|
25
26
|
features = {},
|
|
26
27
|
images = [],
|
|
27
28
|
media,
|
|
@@ -69,9 +70,9 @@ const ModalInfo = _ref => {
|
|
|
69
70
|
item.highlight ? highlightAmenities.push(item) : amenities.push(item);
|
|
70
71
|
});
|
|
71
72
|
const {
|
|
72
|
-
|
|
73
|
+
showMaxOccupation = false
|
|
73
74
|
} = features;
|
|
74
|
-
const occupation =
|
|
75
|
+
const occupation = showMaxOccupation ? roomOccupation : finderOccupation[room];
|
|
75
76
|
return /*#__PURE__*/_react.default.createElement(_ui.Modal, {
|
|
76
77
|
title,
|
|
77
78
|
visible,
|
|
@@ -110,7 +111,7 @@ const ModalInfo = _ref => {
|
|
|
110
111
|
className: style.section
|
|
111
112
|
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
112
113
|
bold: true
|
|
113
|
-
}, translate(
|
|
114
|
+
}, translate(showMaxOccupation ? _Item.L10N.LABEL_MAX_OCCUPATION : _Item.L10N.LABEL_SELECTED_OCCUPATION)), occupation.map(function () {
|
|
114
115
|
var _item$ages;
|
|
115
116
|
let item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
116
117
|
let index = arguments.length > 1 ? arguments[1] : undefined;
|
|
@@ -118,8 +119,8 @@ const ModalInfo = _ref => {
|
|
|
118
119
|
key: index
|
|
119
120
|
}), "".concat((0, _helpers.getOccupationLabel)({
|
|
120
121
|
...item,
|
|
121
|
-
ages:
|
|
122
|
-
}, translate), " ").concat(
|
|
122
|
+
ages: showMaxOccupation ? item.ages : []
|
|
123
|
+
}, translate), " ").concat(!showMaxOccupation && item.type === _helpers.OCCUPATION_TYPE.CHILD ? "(".concat(translate(_Item.L10N.LABEL_YEARS_OLD, {
|
|
123
124
|
amount: (_item$ages = item.ages) === null || _item$ages === void 0 ? void 0 : _item$ages.sort().join('-')
|
|
124
125
|
}), ")") : ''));
|
|
125
126
|
})), bedDisposition.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
@@ -152,7 +153,11 @@ const ModalInfo = _ref => {
|
|
|
152
153
|
action: true
|
|
153
154
|
}, "x".concat(amount)));
|
|
154
155
|
}));
|
|
155
|
-
}))
|
|
156
|
+
})), doubleBedWidth && /*#__PURE__*/_react.default.createElement(_ui.Notification, {
|
|
157
|
+
inline: true,
|
|
158
|
+
small: isMobile,
|
|
159
|
+
title: !isMobile
|
|
160
|
+
}, "".concat(translate(_Item.L10N.LABEL_DOUBLE_BED_WIDTH), ": ").concat(doubleBedWidth))), highlightAmenities.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
156
161
|
wide: true,
|
|
157
162
|
className: style.section
|
|
158
163
|
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
@@ -178,6 +183,7 @@ ModalInfo.propTypes = {
|
|
|
178
183
|
type: _propTypes.default.number
|
|
179
184
|
}))),
|
|
180
185
|
description: _propTypes.default.string,
|
|
186
|
+
doubleBedWidth: _propTypes.default.string,
|
|
181
187
|
features: _propTypes.default.shape({}),
|
|
182
188
|
images: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
183
189
|
alt: _propTypes.default.string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalInfo.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","style","_helpers","_Item","_Amenities","_Slider","_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","ModalInfo","_ref","bedDisposition","description","features","images","media","name","occupation","roomOccupation","room","onClose","onViewUrl","visible","propVisible","others","isMobile","useDevice","translate","useLocale","value","finder","finderOccupation","useStore","setVisible","useState","useEffect","handleClose","setTimeout","amenities","baseAmenities","title","highlightAmenities","textProps","action","small","forEach","item","undefined","highlight","push","showSelectedOccupation","createElement","Modal","fit","onOverflow","className","modal","ScrollView","scrollTo","Slider","captions","map","_ref2","alt","height","_ref3","large","width","slider","View","wide","section","Text","bold","L10N","LABEL_DESCRIPTION","LABEL_SELECTED_OCCUPATION","LABEL_MAX_OCCUPATION","_item$ages","index","concat","getOccupationLabel","ages","type","OCCUPATION_TYPE","CHILD","LABEL_YEARS_OLD","amount","sort","join","LABEL_BED_DISPOSITION","row","arrangments","box","_ref4","Icon","headline","level","ICON","BED_SINGLE","BED_DOUBLE","LABEL_TOP_AMENITIES","Amenities","accent","LABEL_MORE_SERVICES","exports","displayName","propTypes","PropTypes","arrayOf","shape","number","string","thumbnail","url3D","urlVideo","bool","func","isRequired"],"sources":["../../../../../../../src/components/Rates/components/Item/components/ModalInfo/ModalInfo.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Modal, Icon, ScrollView, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport * as style from './ModalInfo.module.css';\nimport { getOccupationLabel, ICON } from '../../../../../helpers';\nimport { OCCUPATION_TYPE } from '../../../../../helpers';\nimport { L10N } from '../../Item.l10n';\nimport { Amenities } from '../Amenities';\nimport { Slider } from '../Slider';\n\nconst ModalInfo = ({\n bedDisposition = [],\n description,\n features = {},\n images = [],\n media,\n name,\n occupation: roomOccupation = [],\n room = 0,\n onClose = () => {},\n onViewUrl,\n visible: propVisible,\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: { finder: { occupation: finderOccupation = [] } = {} },\n } = useStore();\n\n const [visible, setVisible] = useState(propVisible);\n\n useEffect(() => {\n setVisible(propVisible);\n }, [propVisible]);\n\n const handleClose = () => {\n setVisible(false);\n setTimeout(onClose, 300);\n };\n\n const { amenities: baseAmenities = [], title } = others;\n const highlightAmenities = [];\n const amenities = [];\n const textProps = { action: !isMobile, small: isMobile };\n\n baseAmenities.forEach((item = {}) => {\n item.highlight ? highlightAmenities.push(item) : amenities.push(item);\n });\n\n const { showSelectedOccupation = false } = features;\n const occupation = showSelectedOccupation ? finderOccupation[room] : roomOccupation;\n\n return (\n <Modal\n {...{ title, visible }}\n fit\n title={name}\n onClose={handleClose}\n onOverflow={handleClose}\n className={style.modal}\n >\n <ScrollView scrollTo={visible ? 0 : undefined}>\n {!isMobile && (\n <Slider\n captions={images.map(({ alt }) => alt)}\n height={400}\n images={images.map(({ large }) => large)}\n media={media}\n width={738}\n onViewUrl={onViewUrl}\n className={style.slider}\n />\n )}\n\n {description && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_DESCRIPTION)}</Text>\n <Text {...textProps}>{description}</Text>\n </View>\n )}\n\n {occupation.length > 0 && (\n <View wide className={style.section}>\n <Text bold>\n {translate(showSelectedOccupation ? L10N.LABEL_SELECTED_OCCUPATION : L10N.LABEL_MAX_OCCUPATION)}\n </Text>\n {occupation.map((item = {}, index) => (\n <Text {...textProps} key={index}>\n {`${getOccupationLabel({ ...item, ages: showSelectedOccupation ? [] : item.ages }, translate)} ${\n showSelectedOccupation && item.type === OCCUPATION_TYPE.CHILD\n ? `(${translate(L10N.LABEL_YEARS_OLD, { amount: item.ages?.sort().join('-') })})`\n : ''\n }`}\n </Text>\n ))}\n </View>\n )}\n\n {bedDisposition.length > 0 && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_BED_DISPOSITION)}</Text>\n <View row>\n {bedDisposition.map((arrangments = [], index) => (\n <View key={index} row className={[style.box, style.bedDisposition]}>\n {arrangments.map(({ amount, type }) => (\n <View key={`${index}-${type}`} row>\n <Icon headline level={2} value={type === 1 ? ICON.BED_SINGLE : ICON.BED_DOUBLE} />\n <Text action>{`x${amount}`}</Text>\n </View>\n ))}\n </View>\n ))}\n </View>\n </View>\n )}\n\n {highlightAmenities.length > 0 && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_TOP_AMENITIES)}</Text>\n <Amenities accent amenities={highlightAmenities} highlight />\n </View>\n )}\n\n {amenities.length > 0 && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_MORE_SERVICES)}</Text>\n <Amenities amenities={amenities} {...others} />\n </View>\n )}\n </ScrollView>\n </Modal>\n );\n};\n\nModalInfo.displayName = 'Mirai:Core:Rates:Item:ModalInfo';\n\nModalInfo.propTypes = {\n bedDisposition: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n description: PropTypes.string,\n features: PropTypes.shape({}),\n images: PropTypes.arrayOf(\n PropTypes.shape({\n alt: PropTypes.string,\n large: PropTypes.string,\n thumbnail: PropTypes.string,\n }),\n ),\n media: PropTypes.shape({\n url3D: PropTypes.string,\n urlVideo: PropTypes.string,\n }),\n name: PropTypes.string,\n occupation: PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n room: PropTypes.number,\n visible: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onViewUrl: PropTypes.func,\n};\n\nexport { ModalInfo };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ModalInfo.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","style","_helpers","_Item","_Amenities","_Slider","_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","ModalInfo","_ref","bedDisposition","description","doubleBedWidth","features","images","media","name","occupation","roomOccupation","room","onClose","onViewUrl","visible","propVisible","others","isMobile","useDevice","translate","useLocale","value","finder","finderOccupation","useStore","setVisible","useState","useEffect","handleClose","setTimeout","amenities","baseAmenities","title","highlightAmenities","textProps","action","small","forEach","item","undefined","highlight","push","showMaxOccupation","createElement","Modal","fit","onOverflow","className","modal","ScrollView","scrollTo","Slider","captions","map","_ref2","alt","height","_ref3","large","width","slider","View","wide","section","Text","bold","L10N","LABEL_DESCRIPTION","LABEL_MAX_OCCUPATION","LABEL_SELECTED_OCCUPATION","_item$ages","index","concat","getOccupationLabel","ages","type","OCCUPATION_TYPE","CHILD","LABEL_YEARS_OLD","amount","sort","join","LABEL_BED_DISPOSITION","row","arrangments","box","_ref4","Icon","headline","level","ICON","BED_SINGLE","BED_DOUBLE","Notification","inline","LABEL_DOUBLE_BED_WIDTH","LABEL_TOP_AMENITIES","Amenities","accent","LABEL_MORE_SERVICES","exports","displayName","propTypes","PropTypes","arrayOf","shape","number","string","thumbnail","url3D","urlVideo","bool","func","isRequired"],"sources":["../../../../../../../src/components/Rates/components/Item/components/ModalInfo/ModalInfo.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Modal, Icon, Notification, ScrollView, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport * as style from './ModalInfo.module.css';\nimport { getOccupationLabel, ICON } from '../../../../../helpers';\nimport { OCCUPATION_TYPE } from '../../../../../helpers';\nimport { L10N } from '../../Item.l10n';\nimport { Amenities } from '../Amenities';\nimport { Slider } from '../Slider';\n\nconst ModalInfo = ({\n bedDisposition = [],\n description,\n doubleBedWidth,\n features = {},\n images = [],\n media,\n name,\n occupation: roomOccupation = [],\n room = 0,\n onClose = () => {},\n onViewUrl,\n visible: propVisible,\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: { finder: { occupation: finderOccupation = [] } = {} },\n } = useStore();\n\n const [visible, setVisible] = useState(propVisible);\n\n useEffect(() => {\n setVisible(propVisible);\n }, [propVisible]);\n\n const handleClose = () => {\n setVisible(false);\n setTimeout(onClose, 300);\n };\n\n const { amenities: baseAmenities = [], title } = others;\n const highlightAmenities = [];\n const amenities = [];\n const textProps = { action: !isMobile, small: isMobile };\n\n baseAmenities.forEach((item = {}) => {\n item.highlight ? highlightAmenities.push(item) : amenities.push(item);\n });\n\n const { showMaxOccupation = false } = features;\n const occupation = showMaxOccupation ? roomOccupation : finderOccupation[room];\n\n return (\n <Modal\n {...{ title, visible }}\n fit\n title={name}\n onClose={handleClose}\n onOverflow={handleClose}\n className={style.modal}\n >\n <ScrollView scrollTo={visible ? 0 : undefined}>\n {!isMobile && (\n <Slider\n captions={images.map(({ alt }) => alt)}\n height={400}\n images={images.map(({ large }) => large)}\n media={media}\n width={738}\n onViewUrl={onViewUrl}\n className={style.slider}\n />\n )}\n\n {description && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_DESCRIPTION)}</Text>\n <Text {...textProps}>{description}</Text>\n </View>\n )}\n\n {occupation.length > 0 && (\n <View wide className={style.section}>\n <Text bold>\n {translate(showMaxOccupation ? L10N.LABEL_MAX_OCCUPATION : L10N.LABEL_SELECTED_OCCUPATION)}\n </Text>\n {occupation.map((item = {}, index) => (\n <Text {...textProps} key={index}>\n {`${getOccupationLabel({ ...item, ages: showMaxOccupation ? item.ages : [] }, translate)} ${\n !showMaxOccupation && item.type === OCCUPATION_TYPE.CHILD\n ? `(${translate(L10N.LABEL_YEARS_OLD, { amount: item.ages?.sort().join('-') })})`\n : ''\n }`}\n </Text>\n ))}\n </View>\n )}\n\n {bedDisposition.length > 0 && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_BED_DISPOSITION)}</Text>\n <View row>\n {bedDisposition.map((arrangments = [], index) => (\n <View key={index} row className={[style.box, style.bedDisposition]}>\n {arrangments.map(({ amount, type }) => (\n <View key={`${index}-${type}`} row>\n <Icon headline level={2} value={type === 1 ? ICON.BED_SINGLE : ICON.BED_DOUBLE} />\n <Text action>{`x${amount}`}</Text>\n </View>\n ))}\n </View>\n ))}\n </View>\n {doubleBedWidth && (\n <Notification inline small={isMobile} title={!isMobile}>\n {`${translate(L10N.LABEL_DOUBLE_BED_WIDTH)}: ${doubleBedWidth}`}\n </Notification>\n )}\n </View>\n )}\n\n {highlightAmenities.length > 0 && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_TOP_AMENITIES)}</Text>\n <Amenities accent amenities={highlightAmenities} highlight />\n </View>\n )}\n\n {amenities.length > 0 && (\n <View wide className={style.section}>\n <Text bold>{translate(L10N.LABEL_MORE_SERVICES)}</Text>\n <Amenities amenities={amenities} {...others} />\n </View>\n )}\n </ScrollView>\n </Modal>\n );\n};\n\nModalInfo.displayName = 'Mirai:Core:Rates:Item:ModalInfo';\n\nModalInfo.propTypes = {\n bedDisposition: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n description: PropTypes.string,\n doubleBedWidth: PropTypes.string,\n features: PropTypes.shape({}),\n images: PropTypes.arrayOf(\n PropTypes.shape({\n alt: PropTypes.string,\n large: PropTypes.string,\n thumbnail: PropTypes.string,\n }),\n ),\n media: PropTypes.shape({\n url3D: PropTypes.string,\n urlVideo: PropTypes.string,\n }),\n name: PropTypes.string,\n occupation: PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n room: PropTypes.number,\n visible: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onViewUrl: PropTypes.func,\n};\n\nexport { ModalInfo };\n"],"mappings":"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"}
|
|
@@ -331,6 +331,7 @@
|
|
|
331
331
|
"availability": 5,
|
|
332
332
|
"bedDisposition": [[{ "amount": 1, "type": 2 }]],
|
|
333
333
|
"bedTypes": [2],
|
|
334
|
+
"doubleBedWidth": "180 cm",
|
|
334
335
|
"cancellations": [
|
|
335
336
|
{
|
|
336
337
|
"id": "freeCancellation-Cancellation with no penalty up to some hours before arrival.",
|
|
@@ -639,6 +640,7 @@
|
|
|
639
640
|
"availability": 2,
|
|
640
641
|
"bedDisposition": [[{ "amount": 1, "type": 2 }]],
|
|
641
642
|
"bedTypes": [2],
|
|
643
|
+
"doubleBedWidth": "200 cm",
|
|
642
644
|
"cancellations": [
|
|
643
645
|
{
|
|
644
646
|
"id": "freeCancellation-Cancellation with no penalty up to some hours before arrival.",
|
|
@@ -950,6 +952,7 @@
|
|
|
950
952
|
"availability": 3,
|
|
951
953
|
"bedDisposition": [[{ "amount": 1, "type": 2 }]],
|
|
952
954
|
"bedTypes": [2],
|
|
955
|
+
"doubleBedWidth": "200 cm",
|
|
953
956
|
"cancellations": [
|
|
954
957
|
{
|
|
955
958
|
"id": "freeCancellation-Cancellation with no penalty up to some hours before arrival.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["SINGLE","DOUBLE","BED_DISPOSITION","exports","ONE_SINGLE","amount","type","ONE_DOUBLE","TWO_SINGLES","TWO_DOUBLES","THREE_SINGLES","ONE_DOUBLE_ONE_SINGLE","FOUR_SINGLES","ONE_DOUBLE_TWO_SINGLES","FIVE_SINGLES","ONE_DOUBLE_THREE_SINGLES","TWO_DOUBLES_ONE_SINGLE","MORE_THAN_FIVE_BEDS","NO_BED","BED_TYPE","CURRENCIES_WITHOUT_DECIMALS","DEFAULT_LANGUAGE","EXTERNAL","TYPE","URL","en","es","de","fr","it","pt","ru","nl","EXTRA_TYPE","ROOM","GUEST","RANGE","UNIT","FREQUENCY","ONCE","NIGHTLY","KEY_HASH","GUEST_TYPE","ALL","ADULT","CHILD","imperial","bed","size","metric","VALID"],"sources":["../../../src/services/Rates/constants.js"],"sourcesContent":["const SINGLE = 1;\nconst DOUBLE = 2;\n\nconst BED_DISPOSITION = {\n ONE_SINGLE: [{ amount: 1, type: SINGLE }],\n ONE_DOUBLE: [{ amount: 1, type: DOUBLE }],\n TWO_SINGLES: [{ amount: 2, type: SINGLE }],\n TWO_DOUBLES: [{ amount: 2, type: DOUBLE }],\n THREE_SINGLES: [{ amount: 3, type: SINGLE }],\n ONE_DOUBLE_ONE_SINGLE: [\n { amount: 1, type: DOUBLE },\n { amount: 1, type: SINGLE },\n ],\n FOUR_SINGLES: [{ amount: 4, type: SINGLE }],\n ONE_DOUBLE_TWO_SINGLES: [\n { amount: 1, type: DOUBLE },\n { amount: 2, type: SINGLE },\n ],\n FIVE_SINGLES: [{ amount: 5, type: SINGLE }],\n ONE_DOUBLE_THREE_SINGLES: [\n { amount: 1, type: DOUBLE },\n { amount: 3, type: SINGLE },\n ],\n TWO_DOUBLES_ONE_SINGLE: [\n { amount: 2, type: DOUBLE },\n { amount: 1, type: SINGLE },\n ],\n MORE_THAN_FIVE_BEDS: [\n { amount: 6, type: DOUBLE },\n { amount: 6, type: SINGLE },\n ],\n NO_BED: [],\n};\n\nconst BED_TYPE = { SINGLE, DOUBLE };\n\nconst CURRENCIES_WITHOUT_DECIMALS = ['KRW', 'JPY', 'IDR', 'ISK'];\n\nconst DEFAULT_LANGUAGE = 'en';\n\nconst EXTERNAL = {\n TYPE: 3,\n URL: {\n en: 'https://www.pestana.com/en/contents/pgc/pgc-regulation',\n es: 'https://www.pestana.com/es/contents/pgc/pgc-reglamento',\n de: 'https://www.pestana.com/de/contents/pgc/pgc-regulierung',\n fr: 'https://www.pestana.com/fr/contents/pgc/pgc-reglement',\n it: 'https://www.pestana.com/it/contents/pgc/pgc-regolazione',\n pt: 'https://www.pestana.com/pt/contents/pgc/pgc-regulamento',\n ru: 'https://www.pestana.com/ru/contents/pgc/pgc-regulation',\n nl: 'https://www.pestana.com/en/contents/pgc/pgc-regulation',\n },\n};\n\nconst EXTRA_TYPE = {\n ROOM: 0,\n GUEST: 1,\n RANGE: 2,\n UNIT: 3,\n};\n\nconst FREQUENCY = {\n ONCE: 0,\n NIGHTLY: 1,\n};\n\nconst KEY_HASH = 'm14357';\n\nconst GUEST_TYPE = {\n ALL: 1,\n ADULT: 2,\n CHILD: 3,\n};\n\nconst UNIT = {\n imperial: { bed: 'inches', size: '
|
|
1
|
+
{"version":3,"file":"constants.js","names":["SINGLE","DOUBLE","BED_DISPOSITION","exports","ONE_SINGLE","amount","type","ONE_DOUBLE","TWO_SINGLES","TWO_DOUBLES","THREE_SINGLES","ONE_DOUBLE_ONE_SINGLE","FOUR_SINGLES","ONE_DOUBLE_TWO_SINGLES","FIVE_SINGLES","ONE_DOUBLE_THREE_SINGLES","TWO_DOUBLES_ONE_SINGLE","MORE_THAN_FIVE_BEDS","NO_BED","BED_TYPE","CURRENCIES_WITHOUT_DECIMALS","DEFAULT_LANGUAGE","EXTERNAL","TYPE","URL","en","es","de","fr","it","pt","ru","nl","EXTRA_TYPE","ROOM","GUEST","RANGE","UNIT","FREQUENCY","ONCE","NIGHTLY","KEY_HASH","GUEST_TYPE","ALL","ADULT","CHILD","imperial","bed","size","metric","VALID"],"sources":["../../../src/services/Rates/constants.js"],"sourcesContent":["const SINGLE = 1;\nconst DOUBLE = 2;\n\nconst BED_DISPOSITION = {\n ONE_SINGLE: [{ amount: 1, type: SINGLE }],\n ONE_DOUBLE: [{ amount: 1, type: DOUBLE }],\n TWO_SINGLES: [{ amount: 2, type: SINGLE }],\n TWO_DOUBLES: [{ amount: 2, type: DOUBLE }],\n THREE_SINGLES: [{ amount: 3, type: SINGLE }],\n ONE_DOUBLE_ONE_SINGLE: [\n { amount: 1, type: DOUBLE },\n { amount: 1, type: SINGLE },\n ],\n FOUR_SINGLES: [{ amount: 4, type: SINGLE }],\n ONE_DOUBLE_TWO_SINGLES: [\n { amount: 1, type: DOUBLE },\n { amount: 2, type: SINGLE },\n ],\n FIVE_SINGLES: [{ amount: 5, type: SINGLE }],\n ONE_DOUBLE_THREE_SINGLES: [\n { amount: 1, type: DOUBLE },\n { amount: 3, type: SINGLE },\n ],\n TWO_DOUBLES_ONE_SINGLE: [\n { amount: 2, type: DOUBLE },\n { amount: 1, type: SINGLE },\n ],\n MORE_THAN_FIVE_BEDS: [\n { amount: 6, type: DOUBLE },\n { amount: 6, type: SINGLE },\n ],\n NO_BED: [],\n};\n\nconst BED_TYPE = { SINGLE, DOUBLE };\n\nconst CURRENCIES_WITHOUT_DECIMALS = ['KRW', 'JPY', 'IDR', 'ISK'];\n\nconst DEFAULT_LANGUAGE = 'en';\n\nconst EXTERNAL = {\n TYPE: 3,\n URL: {\n en: 'https://www.pestana.com/en/contents/pgc/pgc-regulation',\n es: 'https://www.pestana.com/es/contents/pgc/pgc-reglamento',\n de: 'https://www.pestana.com/de/contents/pgc/pgc-regulierung',\n fr: 'https://www.pestana.com/fr/contents/pgc/pgc-reglement',\n it: 'https://www.pestana.com/it/contents/pgc/pgc-regolazione',\n pt: 'https://www.pestana.com/pt/contents/pgc/pgc-regulamento',\n ru: 'https://www.pestana.com/ru/contents/pgc/pgc-regulation',\n nl: 'https://www.pestana.com/en/contents/pgc/pgc-regulation',\n },\n};\n\nconst EXTRA_TYPE = {\n ROOM: 0,\n GUEST: 1,\n RANGE: 2,\n UNIT: 3,\n};\n\nconst FREQUENCY = {\n ONCE: 0,\n NIGHTLY: 1,\n};\n\nconst KEY_HASH = 'm14357';\n\nconst GUEST_TYPE = {\n ALL: 1,\n ADULT: 2,\n CHILD: 3,\n};\n\nconst UNIT = {\n imperial: { bed: 'inches', size: 'sq ft' },\n metric: { bed: 'cm', size: 'm²' },\n};\n\nconst VALID = 'VALID';\n\nexport {\n BED_DISPOSITION,\n BED_TYPE,\n CURRENCIES_WITHOUT_DECIMALS,\n DEFAULT_LANGUAGE,\n EXTERNAL,\n EXTRA_TYPE,\n FREQUENCY,\n KEY_HASH,\n GUEST_TYPE,\n UNIT,\n VALID,\n};\n"],"mappings":";;;;;;AAAA,MAAMA,MAAM,GAAG,CAAC;AAChB,MAAMC,MAAM,GAAG,CAAC;AAEhB,MAAMC,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EACtBE,UAAU,EAAE,CAAC;IAAEC,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEN;EAAO,CAAC,CAAC;EACzCO,UAAU,EAAE,CAAC;IAAEF,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEL;EAAO,CAAC,CAAC;EACzCO,WAAW,EAAE,CAAC;IAAEH,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEN;EAAO,CAAC,CAAC;EAC1CS,WAAW,EAAE,CAAC;IAAEJ,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEL;EAAO,CAAC,CAAC;EAC1CS,aAAa,EAAE,CAAC;IAAEL,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEN;EAAO,CAAC,CAAC;EAC5CW,qBAAqB,EAAE,CACrB;IAAEN,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEL;EAAO,CAAC,EAC3B;IAAEI,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEN;EAAO,CAAC,CAC5B;EACDY,YAAY,EAAE,CAAC;IAAEP,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEN;EAAO,CAAC,CAAC;EAC3Ca,sBAAsB,EAAE,CACtB;IAAER,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEL;EAAO,CAAC,EAC3B;IAAEI,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEN;EAAO,CAAC,CAC5B;EACDc,YAAY,EAAE,CAAC;IAAET,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEN;EAAO,CAAC,CAAC;EAC3Ce,wBAAwB,EAAE,CACxB;IAAEV,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEL;EAAO,CAAC,EAC3B;IAAEI,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEN;EAAO,CAAC,CAC5B;EACDgB,sBAAsB,EAAE,CACtB;IAAEX,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEL;EAAO,CAAC,EAC3B;IAAEI,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEN;EAAO,CAAC,CAC5B;EACDiB,mBAAmB,EAAE,CACnB;IAAEZ,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEL;EAAO,CAAC,EAC3B;IAAEI,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAEN;EAAO,CAAC,CAC5B;EACDkB,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,QAAQ,GAAAhB,OAAA,CAAAgB,QAAA,GAAG;EAAEnB,MAAM;EAAEC;AAAO,CAAC;AAEnC,MAAMmB,2BAA2B,GAAAjB,OAAA,CAAAiB,2BAAA,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAEhE,MAAMC,gBAAgB,GAAAlB,OAAA,CAAAkB,gBAAA,GAAG,IAAI;AAE7B,MAAMC,QAAQ,GAAAnB,OAAA,CAAAmB,QAAA,GAAG;EACfC,IAAI,EAAE,CAAC;EACPC,GAAG,EAAE;IACHC,EAAE,EAAE,wDAAwD;IAC5DC,EAAE,EAAE,wDAAwD;IAC5DC,EAAE,EAAE,yDAAyD;IAC7DC,EAAE,EAAE,uDAAuD;IAC3DC,EAAE,EAAE,yDAAyD;IAC7DC,EAAE,EAAE,yDAAyD;IAC7DC,EAAE,EAAE,wDAAwD;IAC5DC,EAAE,EAAE;EACN;AACF,CAAC;AAED,MAAMC,UAAU,GAAA9B,OAAA,CAAA8B,UAAA,GAAG;EACjBC,IAAI,EAAE,CAAC;EACPC,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE,CAAC;EACRC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,SAAS,GAAAnC,OAAA,CAAAmC,SAAA,GAAG;EAChBC,IAAI,EAAE,CAAC;EACPC,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,QAAQ,GAAAtC,OAAA,CAAAsC,QAAA,GAAG,QAAQ;AAEzB,MAAMC,UAAU,GAAAvC,OAAA,CAAAuC,UAAA,GAAG;EACjBC,GAAG,EAAE,CAAC;EACNC,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE;AACT,CAAC;AAED,MAAMR,IAAI,GAAAlC,OAAA,CAAAkC,IAAA,GAAG;EACXS,QAAQ,EAAE;IAAEC,GAAG,EAAE,QAAQ;IAAEC,IAAI,EAAE;EAAQ,CAAC;EAC1CC,MAAM,EAAE;IAAEF,GAAG,EAAE,IAAI;IAAEC,IAAI,EAAE;EAAK;AAClC,CAAC;AAED,MAAME,KAAK,GAAA/C,OAAA,CAAA+C,KAAA,GAAG,OAAO"}
|
|
@@ -85,7 +85,7 @@ const extras = function () {
|
|
|
85
85
|
ageCategory,
|
|
86
86
|
conditionDetails: conditions,
|
|
87
87
|
defaultQuantity,
|
|
88
|
-
description
|
|
88
|
+
description,
|
|
89
89
|
includedInOffer: included,
|
|
90
90
|
guestsPresent: guestThreshold,
|
|
91
91
|
name: title,
|
|
@@ -100,8 +100,10 @@ const extras = function () {
|
|
|
100
100
|
priceOptionValues: priceOptions,
|
|
101
101
|
showApplyNights: inputNights,
|
|
102
102
|
showApplyPersons: inputGuests,
|
|
103
|
+
subtitle,
|
|
103
104
|
taxesInformation: taxes
|
|
104
105
|
} = extras[id] || {};
|
|
106
|
+
const text = subtitle ? "".concat(subtitle, ". ").concat(description) : description;
|
|
105
107
|
const guestType = _constants.GUEST_TYPE[ageCategory];
|
|
106
108
|
const type = perRoom ? ROOM : perRange ? RANGE : perReserve ? UNIT : perGuest ? GUEST : undefined;
|
|
107
109
|
const amount = [GUEST, RANGE].includes(type) ? guestType === ADULT ? adults : guestType === CHILD ? children : adults + children : defaultQuantity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extras.js","names":["_dataSources","require","_services","_constants","_helpers","GUEST","RANGE","ROOM","UNIT","EXTRA_TYPE","ADULT","CHILD","GUEST_TYPE","extras","adults","children","clubDiscount","applyClubDiscount","currency","userCurrency","hotelCurrency","locale","offersAppliedBySelectedRoom","price","rooms","session","authorization","others","arguments","length","undefined","Promise","resolve","reject","language","split","params","Object","entries","accessClubToken","lang","totalPrice","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","concat","URLSearchParams","headers","catch","error","result","sortedExtrasIds","ServiceCurrency","exchange","id","draft","includedInOffer","map","ageCategory","conditionDetails","conditions","defaultQuantity","description","text","included","guestsPresent","guestThreshold","name","title","nights","occupationsPresent","accommodationThreshold","perGuest","perNight","perRange","perReserve","perRoom","photo","image","priceOptionValues","priceOptions","showApplyNights","inputNights","showApplyPersons","inputGuests","taxesInformation","taxes","guestType","type","amount","includes","discounts","discount","basePrice","withTaxes","find","_ref2","option","percent","originalPrice","getValue","base","fromEntries","Array","from","_","indexAmount","indexNights","withoutTaxes","_ref3","getAmount","getPrice","normalize","baseValue","frequency","FREQUENCY","NIGHTLY","ONCE","exports"],"sources":["../../../src/services/Rates/extras.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency } from '@mirai/services';\n\nimport { EXTRA_TYPE, FREQUENCY, GUEST_TYPE } from './constants';\nimport { getPrice } from './helpers';\n\nconst { GUEST, RANGE, ROOM, UNIT } = EXTRA_TYPE;\nconst { ADULT, CHILD } = GUEST_TYPE;\n\nexport const extras = ({\n adults,\n children,\n clubDiscount: applyClubDiscount,\n currency: userCurrency,\n hotelCurrency = userCurrency,\n locale,\n offersAppliedBySelectedRoom,\n price,\n rooms,\n session: { authorization } = {},\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n if (!userCurrency || !locale) return reject();\n\n const language = locale?.split('-')[0];\n const params = Object.entries({\n applyClubDiscount,\n currency: userCurrency,\n ...others,\n accessClubToken: authorization,\n lang: language,\n rooms,\n offersAppliedBySelectedRoom,\n totalPrice: price,\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_extras_v2.json?${new URLSearchParams(params)}`,\n //TODO: back have to change the endpoint for don`t have remove this headers\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch((error) => {\n reject(error);\n });\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const { extras = {}, sortedExtrasIds = [] } = response;\n const currency = userCurrency || hotelCurrency;\n if (userCurrency !== hotelCurrency) await ServiceCurrency.exchange(currency);\n\n resolve({\n extras: sortedExtrasIds\n .filter((id) => {\n const { draft, includedInOffer } = extras[id] || {};\n\n return includedInOffer || !draft;\n })\n .map((id) => {\n const {\n ageCategory,\n conditionDetails: conditions,\n defaultQuantity,\n description: text,\n includedInOffer: included,\n guestsPresent: guestThreshold,\n name: title,\n nights,\n occupationsPresent: accommodationThreshold,\n perGuest,\n perNight,\n perRange,\n perReserve,\n perRoom,\n photo: image,\n priceOptionValues: priceOptions,\n showApplyNights: inputNights,\n showApplyPersons: inputGuests,\n taxesInformation: taxes,\n } = extras[id] || {};\n\n const guestType = GUEST_TYPE[ageCategory];\n const type = perRoom ? ROOM : perRange ? RANGE : perReserve ? UNIT : perGuest ? GUEST : undefined;\n const amount = [GUEST, RANGE].includes(type)\n ? guestType === ADULT\n ? adults\n : guestType === CHILD\n ? children\n : adults + children\n : defaultQuantity;\n\n const { discounts: [discount] = [], value: { price: basePrice, withTaxes: price } = {} } =\n priceOptions.find(({ option }) => option === amount) || priceOptions[0];\n const { percent, value: { price: originalPrice } = {} } = discount || {};\n\n const getValue = (base = false) =>\n Object.fromEntries(\n Array.from({ length: amount }, (_, indexAmount) => [\n indexAmount + 1,\n Object.fromEntries(\n Array.from({ length: nights }, (_, indexNights) => {\n const amount = indexAmount + 1;\n const nights = indexNights + 1;\n const { value: { price, withTaxes, withoutTaxes: basePrice } = {} } =\n priceOptions.find(({ option }) => option === amount) || priceOptions[0];\n const taxes = withTaxes - basePrice;\n\n const getAmount = (value) =>\n getPrice({\n currency,\n hotelCurrency: base ? currency : hotelCurrency,\n normalize: false,\n price: type !== RANGE ? (perNight ? amount * nights * value : amount * value) : value,\n });\n\n return [\n nights,\n { basePrice: getAmount(basePrice), price: getAmount(price), taxes: getAmount(taxes) },\n ];\n }),\n ),\n ]),\n );\n\n return {\n accommodationThreshold,\n amount,\n baseValue: getValue(true),\n conditions: conditions ? conditions : undefined,\n discount: discount && { originalPrice, percent },\n frequency: perNight ? FREQUENCY.NIGHTLY : FREQUENCY.ONCE,\n guestThreshold,\n guestType,\n id,\n image,\n included,\n inputGuests,\n inputNights,\n nights,\n taxes: price !== basePrice ? taxes : undefined,\n text: text ? text : undefined,\n title,\n type,\n value: getValue(),\n };\n }),\n });\n });\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extras.js","names":["_dataSources","require","_services","_constants","_helpers","GUEST","RANGE","ROOM","UNIT","EXTRA_TYPE","ADULT","CHILD","GUEST_TYPE","extras","adults","children","clubDiscount","applyClubDiscount","currency","userCurrency","hotelCurrency","locale","offersAppliedBySelectedRoom","price","rooms","session","authorization","others","arguments","length","undefined","Promise","resolve","reject","language","split","params","Object","entries","accessClubToken","lang","totalPrice","filter","_ref","value","response","request","hostname","process","env","SERVICE_BOOKING","endpoint","concat","URLSearchParams","headers","catch","error","result","sortedExtrasIds","ServiceCurrency","exchange","id","draft","includedInOffer","map","ageCategory","conditionDetails","conditions","defaultQuantity","description","included","guestsPresent","guestThreshold","name","title","nights","occupationsPresent","accommodationThreshold","perGuest","perNight","perRange","perReserve","perRoom","photo","image","priceOptionValues","priceOptions","showApplyNights","inputNights","showApplyPersons","inputGuests","subtitle","taxesInformation","taxes","text","guestType","type","amount","includes","discounts","discount","basePrice","withTaxes","find","_ref2","option","percent","originalPrice","getValue","base","fromEntries","Array","from","_","indexAmount","indexNights","withoutTaxes","_ref3","getAmount","getPrice","normalize","baseValue","frequency","FREQUENCY","NIGHTLY","ONCE","exports"],"sources":["../../../src/services/Rates/extras.js"],"sourcesContent":["/* eslint-disable no-async-promise-executor */\nimport { request } from '@mirai/data-sources';\nimport { ServiceCurrency } from '@mirai/services';\n\nimport { EXTRA_TYPE, FREQUENCY, GUEST_TYPE } from './constants';\nimport { getPrice } from './helpers';\n\nconst { GUEST, RANGE, ROOM, UNIT } = EXTRA_TYPE;\nconst { ADULT, CHILD } = GUEST_TYPE;\n\nexport const extras = ({\n adults,\n children,\n clubDiscount: applyClubDiscount,\n currency: userCurrency,\n hotelCurrency = userCurrency,\n locale,\n offersAppliedBySelectedRoom,\n price,\n rooms,\n session: { authorization } = {},\n ...others\n} = {}) =>\n new Promise(async (resolve, reject) => {\n if (!userCurrency || !locale) return reject();\n\n const language = locale?.split('-')[0];\n const params = Object.entries({\n applyClubDiscount,\n currency: userCurrency,\n ...others,\n accessClubToken: authorization,\n lang: language,\n rooms,\n offersAppliedBySelectedRoom,\n totalPrice: price,\n }).filter(([, value]) => value !== undefined);\n\n const response = await request({\n hostname: process.env.SERVICE_BOOKING,\n endpoint: `/request_extras_v2.json?${new URLSearchParams(params)}`,\n //TODO: back have to change the endpoint for don`t have remove this headers\n headers: { 'Content-Type': undefined, 'X-Requested-With': undefined },\n }).catch((error) => {\n reject(error);\n });\n\n if (!response || response.result === 'EXCEPTION') return reject({ error: 'Upss, something bad happened!' }); //TODO\n\n const { extras = {}, sortedExtrasIds = [] } = response;\n const currency = userCurrency || hotelCurrency;\n if (userCurrency !== hotelCurrency) await ServiceCurrency.exchange(currency);\n\n resolve({\n extras: sortedExtrasIds\n .filter((id) => {\n const { draft, includedInOffer } = extras[id] || {};\n\n return includedInOffer || !draft;\n })\n .map((id) => {\n const {\n ageCategory,\n conditionDetails: conditions,\n defaultQuantity,\n description,\n includedInOffer: included,\n guestsPresent: guestThreshold,\n name: title,\n nights,\n occupationsPresent: accommodationThreshold,\n perGuest,\n perNight,\n perRange,\n perReserve,\n perRoom,\n photo: image,\n priceOptionValues: priceOptions,\n showApplyNights: inputNights,\n showApplyPersons: inputGuests,\n subtitle,\n taxesInformation: taxes,\n } = extras[id] || {};\n\n const text = subtitle ? `${subtitle}. ${description}` : description;\n const guestType = GUEST_TYPE[ageCategory];\n const type = perRoom ? ROOM : perRange ? RANGE : perReserve ? UNIT : perGuest ? GUEST : undefined;\n const amount = [GUEST, RANGE].includes(type)\n ? guestType === ADULT\n ? adults\n : guestType === CHILD\n ? children\n : adults + children\n : defaultQuantity;\n\n const { discounts: [discount] = [], value: { price: basePrice, withTaxes: price } = {} } =\n priceOptions.find(({ option }) => option === amount) || priceOptions[0];\n const { percent, value: { price: originalPrice } = {} } = discount || {};\n\n const getValue = (base = false) =>\n Object.fromEntries(\n Array.from({ length: amount }, (_, indexAmount) => [\n indexAmount + 1,\n Object.fromEntries(\n Array.from({ length: nights }, (_, indexNights) => {\n const amount = indexAmount + 1;\n const nights = indexNights + 1;\n const { value: { price, withTaxes, withoutTaxes: basePrice } = {} } =\n priceOptions.find(({ option }) => option === amount) || priceOptions[0];\n const taxes = withTaxes - basePrice;\n\n const getAmount = (value) =>\n getPrice({\n currency,\n hotelCurrency: base ? currency : hotelCurrency,\n normalize: false,\n price: type !== RANGE ? (perNight ? amount * nights * value : amount * value) : value,\n });\n\n return [\n nights,\n { basePrice: getAmount(basePrice), price: getAmount(price), taxes: getAmount(taxes) },\n ];\n }),\n ),\n ]),\n );\n\n return {\n accommodationThreshold,\n amount,\n baseValue: getValue(true),\n conditions: conditions ? conditions : undefined,\n discount: discount && { originalPrice, percent },\n frequency: perNight ? FREQUENCY.NIGHTLY : FREQUENCY.ONCE,\n guestThreshold,\n guestType,\n id,\n image,\n included,\n inputGuests,\n inputNights,\n nights,\n taxes: price !== basePrice ? taxes : undefined,\n text: text ? text : undefined,\n title,\n type,\n value: getValue(),\n };\n }),\n });\n });\n"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AALA;;AAOA,MAAM;EAAEI,KAAK;EAAEC,KAAK;EAAEC,IAAI;EAAEC;AAAK,CAAC,GAAGC,qBAAU;AAC/C,MAAM;EAAEC,KAAK;EAAEC;AAAM,CAAC,GAAGC,qBAAU;AAE5B,MAAMC,MAAM,GAAG,SAAAA,CAAA;EAAA,IAAC;IACrBC,MAAM;IACNC,QAAQ;IACRC,YAAY,EAAEC,iBAAiB;IAC/BC,QAAQ,EAAEC,YAAY;IACtBC,aAAa,GAAGD,YAAY;IAC5BE,MAAM;IACNC,2BAA2B;IAC3BC,KAAK;IACLC,KAAK;IACLC,OAAO,EAAE;MAAEC;IAAc,CAAC,GAAG,CAAC,CAAC;IAC/B,GAAGC;EACL,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,OACJ,IAAIG,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;IACrC,IAAI,CAACd,YAAY,IAAI,CAACE,MAAM,EAAE,OAAOY,MAAM,CAAC,CAAC;IAE7C,MAAMC,QAAQ,GAAGb,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEc,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtC,MAAMC,MAAM,GAAGC,MAAM,CAACC,OAAO,CAAC;MAC5BrB,iBAAiB;MACjBC,QAAQ,EAAEC,YAAY;MACtB,GAAGQ,MAAM;MACTY,eAAe,EAAEb,aAAa;MAC9Bc,IAAI,EAAEN,QAAQ;MACdV,KAAK;MACLF,2BAA2B;MAC3BmB,UAAU,EAAElB;IACd,CAAC,CAAC,CAACmB,MAAM,CAACC,IAAA;MAAA,IAAC,GAAGC,KAAK,CAAC,GAAAD,IAAA;MAAA,OAAKC,KAAK,KAAKd,SAAS;IAAA,EAAC;IAE7C,MAAMe,QAAQ,GAAG,MAAM,IAAAC,oBAAO,EAAC;MAC7BC,QAAQ,EAAEC,OAAO,CAACC,GAAG,CAACC,eAAe;MACrCC,QAAQ,6BAAAC,MAAA,CAA6B,IAAIC,eAAe,CAACjB,MAAM,CAAC,CAAE;MAClE;MACAkB,OAAO,EAAE;QAAE,cAAc,EAAExB,SAAS;QAAE,kBAAkB,EAAEA;MAAU;IACtE,CAAC,CAAC,CAACyB,KAAK,CAAEC,KAAK,IAAK;MAClBvB,MAAM,CAACuB,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,CAACX,QAAQ,IAAIA,QAAQ,CAACY,MAAM,KAAK,WAAW,EAAE,OAAOxB,MAAM,CAAC;MAAEuB,KAAK,EAAE;IAAgC,CAAC,CAAC,CAAC,CAAC;;IAE7G,MAAM;MAAE3C,MAAM,GAAG,CAAC,CAAC;MAAE6C,eAAe,GAAG;IAAG,CAAC,GAAGb,QAAQ;IACtD,MAAM3B,QAAQ,GAAGC,YAAY,IAAIC,aAAa;IAC9C,IAAID,YAAY,KAAKC,aAAa,EAAE,MAAMuC,yBAAe,CAACC,QAAQ,CAAC1C,QAAQ,CAAC;IAE5Ec,OAAO,CAAC;MACNnB,MAAM,EAAE6C,eAAe,CACpBhB,MAAM,CAAEmB,EAAE,IAAK;QACd,MAAM;UAAEC,KAAK;UAAEC;QAAgB,CAAC,GAAGlD,MAAM,CAACgD,EAAE,CAAC,IAAI,CAAC,CAAC;QAEnD,OAAOE,eAAe,IAAI,CAACD,KAAK;MAClC,CAAC,CAAC,CACDE,GAAG,CAAEH,EAAE,IAAK;QACX,MAAM;UACJI,WAAW;UACXC,gBAAgB,EAAEC,UAAU;UAC5BC,eAAe;UACfC,WAAW;UACXN,eAAe,EAAEO,QAAQ;UACzBC,aAAa,EAAEC,cAAc;UAC7BC,IAAI,EAAEC,KAAK;UACXC,MAAM;UACNC,kBAAkB,EAAEC,sBAAsB;UAC1CC,QAAQ;UACRC,QAAQ;UACRC,QAAQ;UACRC,UAAU;UACVC,OAAO;UACPC,KAAK,EAAEC,KAAK;UACZC,iBAAiB,EAAEC,YAAY;UAC/BC,eAAe,EAAEC,WAAW;UAC5BC,gBAAgB,EAAEC,WAAW;UAC7BC,QAAQ;UACRC,gBAAgB,EAAEC;QACpB,CAAC,GAAGhF,MAAM,CAACgD,EAAE,CAAC,IAAI,CAAC,CAAC;QAEpB,MAAMiC,IAAI,GAAGH,QAAQ,MAAAvC,MAAA,CAAMuC,QAAQ,QAAAvC,MAAA,CAAKiB,WAAW,IAAKA,WAAW;QACnE,MAAM0B,SAAS,GAAGnF,qBAAU,CAACqD,WAAW,CAAC;QACzC,MAAM+B,IAAI,GAAGd,OAAO,GAAG3E,IAAI,GAAGyE,QAAQ,GAAG1E,KAAK,GAAG2E,UAAU,GAAGzE,IAAI,GAAGsE,QAAQ,GAAGzE,KAAK,GAAGyB,SAAS;QACjG,MAAMmE,MAAM,GAAG,CAAC5F,KAAK,EAAEC,KAAK,CAAC,CAAC4F,QAAQ,CAACF,IAAI,CAAC,GACxCD,SAAS,KAAKrF,KAAK,GACjBI,MAAM,GACNiF,SAAS,KAAKpF,KAAK,GACnBI,QAAQ,GACRD,MAAM,GAAGC,QAAQ,GACnBqD,eAAe;QAEnB,MAAM;UAAE+B,SAAS,EAAE,CAACC,QAAQ,CAAC,GAAG,EAAE;UAAExD,KAAK,EAAE;YAAErB,KAAK,EAAE8E,SAAS;YAAEC,SAAS,EAAE/E;UAAM,CAAC,GAAG,CAAC;QAAE,CAAC,GACtF+D,YAAY,CAACiB,IAAI,CAACC,KAAA;UAAA,IAAC;YAAEC;UAAO,CAAC,GAAAD,KAAA;UAAA,OAAKC,MAAM,KAAKR,MAAM;QAAA,EAAC,IAAIX,YAAY,CAAC,CAAC,CAAC;QACzE,MAAM;UAAEoB,OAAO;UAAE9D,KAAK,EAAE;YAAErB,KAAK,EAAEoF;UAAc,CAAC,GAAG,CAAC;QAAE,CAAC,GAAGP,QAAQ,IAAI,CAAC,CAAC;QAExE,MAAMQ,QAAQ,GAAG,SAAAA,CAAA;UAAA,IAACC,IAAI,GAAAjF,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;UAAA,OAC5BS,MAAM,CAACyE,WAAW,CAChBC,KAAK,CAACC,IAAI,CAAC;YAAEnF,MAAM,EAAEoE;UAAO,CAAC,EAAE,CAACgB,CAAC,EAAEC,WAAW,KAAK,CACjDA,WAAW,GAAG,CAAC,EACf7E,MAAM,CAACyE,WAAW,CAChBC,KAAK,CAACC,IAAI,CAAC;YAAEnF,MAAM,EAAE8C;UAAO,CAAC,EAAE,CAACsC,CAAC,EAAEE,WAAW,KAAK;YACjD,MAAMlB,MAAM,GAAGiB,WAAW,GAAG,CAAC;YAC9B,MAAMvC,MAAM,GAAGwC,WAAW,GAAG,CAAC;YAC9B,MAAM;cAAEvE,KAAK,EAAE;gBAAErB,KAAK;gBAAE+E,SAAS;gBAAEc,YAAY,EAAEf;cAAU,CAAC,GAAG,CAAC;YAAE,CAAC,GACjEf,YAAY,CAACiB,IAAI,CAACc,KAAA;cAAA,IAAC;gBAAEZ;cAAO,CAAC,GAAAY,KAAA;cAAA,OAAKZ,MAAM,KAAKR,MAAM;YAAA,EAAC,IAAIX,YAAY,CAAC,CAAC,CAAC;YACzE,MAAMO,KAAK,GAAGS,SAAS,GAAGD,SAAS;YAEnC,MAAMiB,SAAS,GAAI1E,KAAK,IACtB,IAAA2E,iBAAQ,EAAC;cACPrG,QAAQ;cACRE,aAAa,EAAEyF,IAAI,GAAG3F,QAAQ,GAAGE,aAAa;cAC9CoG,SAAS,EAAE,KAAK;cAChBjG,KAAK,EAAEyE,IAAI,KAAK1F,KAAK,GAAIyE,QAAQ,GAAGkB,MAAM,GAAGtB,MAAM,GAAG/B,KAAK,GAAGqD,MAAM,GAAGrD,KAAK,GAAIA;YAClF,CAAC,CAAC;YAEJ,OAAO,CACL+B,MAAM,EACN;cAAE0B,SAAS,EAAEiB,SAAS,CAACjB,SAAS,CAAC;cAAE9E,KAAK,EAAE+F,SAAS,CAAC/F,KAAK,CAAC;cAAEsE,KAAK,EAAEyB,SAAS,CAACzB,KAAK;YAAE,CAAC,CACtF;UACH,CAAC,CACH,CAAC,CACF,CACH,CAAC;QAAA;QAEH,OAAO;UACLhB,sBAAsB;UACtBoB,MAAM;UACNwB,SAAS,EAAEb,QAAQ,CAAC,IAAI,CAAC;UACzBzC,UAAU,EAAEA,UAAU,GAAGA,UAAU,GAAGrC,SAAS;UAC/CsE,QAAQ,EAAEA,QAAQ,IAAI;YAAEO,aAAa;YAAED;UAAQ,CAAC;UAChDgB,SAAS,EAAE3C,QAAQ,GAAG4C,oBAAS,CAACC,OAAO,GAAGD,oBAAS,CAACE,IAAI;UACxDrD,cAAc;UACduB,SAAS;UACTlC,EAAE;UACFuB,KAAK;UACLd,QAAQ;UACRoB,WAAW;UACXF,WAAW;UACXb,MAAM;UACNkB,KAAK,EAAEtE,KAAK,KAAK8E,SAAS,GAAGR,KAAK,GAAG/D,SAAS;UAC9CgE,IAAI,EAAEA,IAAI,GAAGA,IAAI,GAAGhE,SAAS;UAC7B4C,KAAK;UACLsB,IAAI;UACJpD,KAAK,EAAEgE,QAAQ,CAAC;QAClB,CAAC;MACH,CAAC;IACL,CAAC,CAAC;EACJ,CAAC,CAAC;AAAA;AAACkB,OAAA,CAAAjH,MAAA,GAAAA,MAAA"}
|
|
@@ -18,15 +18,15 @@ const getCalendarSuggestions = function () {
|
|
|
18
18
|
} = {},
|
|
19
19
|
checkIn: propCheckIn,
|
|
20
20
|
minStayType,
|
|
21
|
-
nights
|
|
21
|
+
nights: propNights
|
|
22
22
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
23
23
|
let allSuggestions = [];
|
|
24
24
|
const date = (0, _locale.parseDate)(initialDate);
|
|
25
|
-
const
|
|
25
|
+
const nights = Number(propNights);
|
|
26
26
|
for (let index = 0; index < daysInfo.length; index++) {
|
|
27
27
|
const from = index > 0 ? (0, _locale.dateCalc)(date, index) : date;
|
|
28
|
-
const rangeDays = daysInfo.slice(index, index +
|
|
29
|
-
if (rangeDays.length !==
|
|
28
|
+
const rangeDays = daysInfo.slice(index, index + nights);
|
|
29
|
+
if (rangeDays.length !== nights) break;
|
|
30
30
|
if (rangeDays.every(day => day > 0) && (minStayType === CHECK_IN && (daysInfo[index] === 1 || daysInfo[index] > 1 && nights >= daysInfo[index]) || minStayType === STAY && daysInfo[index] > 0 && nights >= Math.max(...rangeDays))) {
|
|
31
31
|
//!TODO: get price for nights and occupation
|
|
32
32
|
allSuggestions.push({
|
|
@@ -46,7 +46,7 @@ const getCalendarSuggestions = function () {
|
|
|
46
46
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
47
47
|
let index = arguments.length > 1 ? arguments[1] : undefined;
|
|
48
48
|
if (from > checkIn && !hasNext || hasNext && suggestions.length < 3 && checkIn.getDay() === from.getDay()) {
|
|
49
|
-
if (!hasPrevious && !hasNext && index > 0) {
|
|
49
|
+
if (!hasPrevious && !hasNext && index > 0 && allSuggestions[index - 1].from.getTime() !== checkIn.getTime()) {
|
|
50
50
|
suggestions.push(allSuggestions[index - 1]);
|
|
51
51
|
hasPrevious = true;
|
|
52
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCalendarSuggestions.js","names":["_locale","require","_Core","CHECK_IN","STAY","MIN_STAY_TYPE","getCalendarSuggestions","calendar","daysInfo","initialDate","checkIn","propCheckIn","minStayType","nights","arguments","length","undefined","allSuggestions","date","parseDate","
|
|
1
|
+
{"version":3,"file":"getCalendarSuggestions.js","names":["_locale","require","_Core","CHECK_IN","STAY","MIN_STAY_TYPE","getCalendarSuggestions","calendar","daysInfo","initialDate","checkIn","propCheckIn","minStayType","nights","propNights","arguments","length","undefined","allSuggestions","date","parseDate","Number","index","from","dateCalc","rangeDays","slice","every","day","Math","max","push","to","price","floor","random","suggestions","hasPrevious","hasNext","forEach","getDay","getTime","exports"],"sources":["../../../../src/services/Rates/helpers/getCalendarSuggestions.js"],"sourcesContent":["import { dateCalc, parseDate } from '@mirai/locale';\n\nimport { MIN_STAY_TYPE } from '../../../Core.constants';\n\nconst { CHECK_IN, STAY } = MIN_STAY_TYPE;\n\nexport const getCalendarSuggestions = ({\n calendar: { daysInfo = [], initialDate } = {},\n checkIn: propCheckIn,\n minStayType,\n nights: propNights,\n} = {}) => {\n let allSuggestions = [];\n const date = parseDate(initialDate);\n const nights = Number(propNights);\n\n for (let index = 0; index < daysInfo.length; index++) {\n const from = index > 0 ? dateCalc(date, index) : date;\n const rangeDays = daysInfo.slice(index, index + nights);\n if (rangeDays.length !== nights) break;\n\n if (\n rangeDays.every((day) => day > 0) &&\n ((minStayType === CHECK_IN && (daysInfo[index] === 1 || (daysInfo[index] > 1 && nights >= daysInfo[index]))) ||\n (minStayType === STAY && daysInfo[index] > 0 && nights >= Math.max(...rangeDays)))\n ) {\n //!TODO: get price for nights and occupation\n allSuggestions.push({ from, to: dateCalc(from, nights), price: Math.floor(Math.random() * 500) + 100 });\n }\n }\n\n const checkIn = parseDate(propCheckIn);\n let suggestions = [];\n let hasPrevious = false;\n let hasNext = false;\n allSuggestions.forEach(({ from } = {}, index) => {\n if ((from > checkIn && !hasNext) || (hasNext && suggestions.length < 3 && checkIn.getDay() === from.getDay())) {\n if (!hasPrevious && !hasNext && index > 0 && allSuggestions[index - 1].from.getTime() !== checkIn.getTime()) {\n suggestions.push(allSuggestions[index - 1]);\n hasPrevious = true;\n }\n suggestions.push(allSuggestions[index]);\n hasNext = true;\n }\n });\n\n return suggestions;\n};\n"],"mappings":"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"}
|