@mirai/core 0.4.179 → 0.4.181
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/components/Rates/components/Filters/Filters.js +30 -17
- package/build/components/Rates/components/Filters/Filters.js.map +1 -1
- package/build/components/Rates/hooks/useRates.js +7 -0
- package/build/components/Rates/hooks/useRates.js.map +1 -1
- package/build/components/helpers/constants.js +1 -0
- package/build/components/helpers/constants.js.map +1 -1
- package/package.json +1 -1
|
@@ -23,6 +23,7 @@ var _components2 = require("../Item/components");
|
|
|
23
23
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
24
24
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
25
25
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
|
+
let currentCurrency;
|
|
26
27
|
let memoizeForm;
|
|
27
28
|
let timeoutRange;
|
|
28
29
|
const Filters = _ref => {
|
|
@@ -76,7 +77,6 @@ const Filters = _ref => {
|
|
|
76
77
|
const nextForm = memoizeForm || {
|
|
77
78
|
..._Filters4.DEFAULT_FORM,
|
|
78
79
|
clubDiscount: !session && discount !== undefined ? !!discount : undefined,
|
|
79
|
-
currency,
|
|
80
80
|
offer: idoffers ? !!idoffers : undefined,
|
|
81
81
|
promocode: promocode ? !!promocode : undefined,
|
|
82
82
|
roomType: roomTypeId ? !!roomTypeId : undefined
|
|
@@ -86,11 +86,11 @@ const Filters = _ref => {
|
|
|
86
86
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
87
87
|
}, []);
|
|
88
88
|
(0, _react.useEffect)(() => {
|
|
89
|
-
if (!form.priceRange ||
|
|
89
|
+
if (!form.priceRange || currentCurrency !== undefined && currentCurrency === currency) return;
|
|
90
|
+
currentCurrency = currency;
|
|
90
91
|
const nextForm = {
|
|
91
92
|
...form,
|
|
92
|
-
priceRange: undefined
|
|
93
|
-
currency
|
|
93
|
+
priceRange: undefined
|
|
94
94
|
};
|
|
95
95
|
setForm(nextForm);
|
|
96
96
|
setCounter((0, _helpers.countFilters)(nextForm));
|
|
@@ -101,16 +101,29 @@ const Filters = _ref => {
|
|
|
101
101
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
102
102
|
}, [currency]);
|
|
103
103
|
(0, _react.useEffect)(() => {
|
|
104
|
-
const
|
|
105
|
-
const nextForm = {
|
|
106
|
-
...form,
|
|
107
|
-
clubDiscount
|
|
108
|
-
};
|
|
104
|
+
const setNextState = nextForm => {
|
|
109
105
|
setForm(nextForm);
|
|
110
106
|
setCounter((0, _helpers.countFilters)(nextForm));
|
|
111
107
|
};
|
|
112
|
-
|
|
113
|
-
|
|
108
|
+
const setClubDiscount = clubDiscount => setNextState({
|
|
109
|
+
...form,
|
|
110
|
+
clubDiscount
|
|
111
|
+
});
|
|
112
|
+
const setClubPromocode = _ref2 => {
|
|
113
|
+
let {
|
|
114
|
+
promocode
|
|
115
|
+
} = _ref2;
|
|
116
|
+
return setNextState({
|
|
117
|
+
...form,
|
|
118
|
+
promocode
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
_dataSources.Event.subscribe(_helpers2.EVENT.RATES_FILTER_CLUB, setClubDiscount);
|
|
122
|
+
_dataSources.Event.subscribe(_helpers2.EVENT.RATES_FILTER_PROMOCODE, setClubPromocode);
|
|
123
|
+
return () => {
|
|
124
|
+
_dataSources.Event.unsubscribe(_helpers2.EVENT.RATES_FILTER_CLUB, setClubDiscount);
|
|
125
|
+
_dataSources.Event.unsubscribe(_helpers2.EVENT.RATES_FILTER_PROMOCODE, setClubPromocode);
|
|
126
|
+
};
|
|
114
127
|
}, [form]);
|
|
115
128
|
(0, _react.useEffect)(() => {
|
|
116
129
|
if (JSON.stringify(propItems) !== JSON.stringify(items)) setItems(propItems);
|
|
@@ -321,12 +334,12 @@ const Filters = _ref => {
|
|
|
321
334
|
}, translate(_Filters5.L10N.LABEL_ACCOMMODATION_PLAN)), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
322
335
|
row: inlineBoards,
|
|
323
336
|
className: (0, _ui.styles)(style.boards, inlineBoards && style.inline)
|
|
324
|
-
}, filters.boards.map(
|
|
337
|
+
}, filters.boards.map(_ref3 => {
|
|
325
338
|
let {
|
|
326
339
|
id,
|
|
327
340
|
text,
|
|
328
341
|
type
|
|
329
|
-
} =
|
|
342
|
+
} = _ref3;
|
|
330
343
|
return /*#__PURE__*/_react.default.createElement(_components2.Option, {
|
|
331
344
|
checked: form.board === type,
|
|
332
345
|
key: "board:".concat(id),
|
|
@@ -356,11 +369,11 @@ const Filters = _ref => {
|
|
|
356
369
|
}, translate(_Filters5.L10N.LABEL_AMENITIES)), /*#__PURE__*/_react.default.createElement(_ui.View, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
357
370
|
row: true,
|
|
358
371
|
className: style.amenities
|
|
359
|
-
}, filters.amenities.filter(item => item.highlight).map(
|
|
372
|
+
}, filters.amenities.filter(item => item.highlight).map(_ref4 => {
|
|
360
373
|
let {
|
|
361
374
|
id,
|
|
362
375
|
text
|
|
363
|
-
} =
|
|
376
|
+
} = _ref4;
|
|
364
377
|
return /*#__PURE__*/_react.default.createElement(_Filters.Amenity, {
|
|
365
378
|
checked: form.amenities.includes(id),
|
|
366
379
|
id: id,
|
|
@@ -376,11 +389,11 @@ const Filters = _ref => {
|
|
|
376
389
|
}, translate(_Filters5.L10N.LABEL_OTHERS)), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
377
390
|
row: true,
|
|
378
391
|
className: style.amenities
|
|
379
|
-
}, filters.amenities.filter(item => !item.highlight).map(
|
|
392
|
+
}, filters.amenities.filter(item => !item.highlight).map(_ref5 => {
|
|
380
393
|
let {
|
|
381
394
|
id,
|
|
382
395
|
text
|
|
383
|
-
} =
|
|
396
|
+
} = _ref5;
|
|
384
397
|
return /*#__PURE__*/_react.default.createElement(_Filters.Amenity, {
|
|
385
398
|
checked: form.amenities.includes(id),
|
|
386
399
|
id: id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Filters","_Filters2","_Filters3","_Filters4","_Filters5","style","_helpers","_helpers2","_helpers3","_components2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","memoizeForm","timeoutRange","Filters","_ref","clubConditions","items","propItems","priceFactor","onSubmit","others","isMobile","useDevice","translate","useLocale","value","currency","club","finder","hotel","id","locale","occupation","maxRooms","session","urlParams","idoffers","roomTypeId","useStore","discount","promocode","allAmenities","setAllAmenities","useState","busy","setBusy","counter","setCounter","filters","setFilters","getAvailableFilters","form","setForm","DEFAULT_FORM","setItems","visible","setVisible","useEffect","nextForm","clubDiscount","undefined","offer","roomType","countFilters","priceRange","strictSearch","getStrictSearch","callback","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","JSON","stringify","nextFilters","handleModal","next","publish","METRICS","handleAmenity","amenities","filter","item","amenity","handleOption","field","concat","handleRange","clearTimeout","setTimeout","SUBMIT_DELAY","handleBookingOption","fetch","handleClearAll","handleSubmit","nextCounter","cart","params","nextItems","fetchRates","catch","freeCancellation","filteredItems","select","availability","arguments","length","boardsLength","boards","inlineBoards","MAX_BOARDS","name","roomTypeName","find","parseInt","createElement","Fragment","Button","onPress","Modal","fit","portal","title","L10N","LABEL_FILTERS","onClose","className","modal","ScrollView","scrollIndicator","scrollTo","snap","scrollView","View","section","Text","bold","headline","LABEL_BOOKING_OPTIONS","BookingOption","caption","LABEL_CLUB_CONDITIONS","conditions","Action","href","small","target","underline","textInline","ACTION_CLUB_VIEW_CONDITIONS","LABEL_CLUB_BENEFITS","checked","LABEL_CLUB_MEMBERS_EXCLUSIVE","onChange","BOOKING_OPTIONS","map","key","roomName","toUpperCase","LABEL_ACCOMMODATION_PLAN","row","styles","inline","_ref2","text","type","Option","board","outlined","option","prices","InputRange","LABEL_SET_PRICE_RANGE","LABEL_NIGHTLY_PRICES","dataSource","resolution","LABEL_PRICE_RANGE","unit","currencySymbol","wide","LABEL_AMENITIES","highlight","_ref3","Amenity","includes","label","action","textOthers","LABEL_OTHERS","_ref4","ACTION_VIEW_MORE","bedTypes","LABEL_BED_TYPE","bedType","icon","ICON","BED_SINGLE","BED_DOUBLE","LABEL_BED_TYPE_SINGLE","LABEL_BED_TYPE_DOUBLE","sizes","LABEL_ROOM_SIZE","sizeUnit","sizeRange","footer","spaceBetween","transparent","ACTION_CLEAR_ALL","disabled","LABEL_SHOW_COUNT_RESULTS","LABEL_NO_EXACT_MATCHES","count","exports","displayName","propTypes","PropTypes","bool","string","arrayOf","shape","number","func"],"sources":["../../../../../src/components/Rates/components/Filters/Filters.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencySymbol, useLocale } from '@mirai/locale';\nimport { Action, Button, Modal, ScrollView, styles, useDevice, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { InputRange } from './components';\nimport { Amenity } from './Filters.Amenity';\nimport { BookingOption } from './Filters.BookingOption';\nimport { Button as ButtonFilters } from './Filters.Button';\nimport { BOOKING_OPTIONS, DEFAULT_FORM, MAX_BOARDS } from './Filters.constants';\nimport { L10N } from './Filters.l10n';\nimport * as style from './Filters.module.css';\nimport { countFilters, getAvailableFilters, getStrictSearch } from './helpers';\nimport { EVENT, ICON, SUBMIT_DELAY } from '../../../helpers';\nimport { fetchRates, select } from '../../helpers';\nimport { Option } from '../Item/components';\n\nlet memoizeForm;\nlet timeoutRange;\n\nconst Filters = ({ clubConditions, items: propItems = [], priceFactor = 1, onSubmit = () => {}, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n currency,\n club = {},\n finder = {},\n hotel,\n id,\n locale,\n occupation: { maxRooms } = {},\n session,\n urlParams: { idoffers, roomTypeId } = {},\n } = {},\n } = useStore();\n\n const { discount } = club;\n const { promocode } = finder;\n\n const [allAmenities, setAllAmenities] = useState(false);\n const [busy, setBusy] = useState(false);\n const [counter, setCounter] = useState(0);\n const [filters, setFilters] = useState(getAvailableFilters(propItems, { priceFactor }));\n const [form, setForm] = useState(DEFAULT_FORM);\n const [items, setItems] = useState(propItems);\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n const nextForm = memoizeForm || {\n ...DEFAULT_FORM,\n clubDiscount: !session && discount !== undefined ? !!discount : undefined,\n currency,\n offer: idoffers ? !!idoffers : undefined,\n promocode: promocode ? !!promocode : undefined,\n roomType: roomTypeId ? !!roomTypeId : undefined,\n };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!form.priceRange || form.currency === currency) return;\n\n const nextForm = { ...form, priceRange: undefined, currency };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n onSubmit({ ...nextForm, strictSearch: getStrictSearch(nextForm) });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency]);\n\n useEffect(() => {\n const callback = (clubDiscount) => {\n const nextForm = { ...form, clubDiscount };\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n };\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n }, [form]);\n\n useEffect(() => {\n if (JSON.stringify(propItems) !== JSON.stringify(items)) setItems(propItems);\n\n const nextFilters = getAvailableFilters(propItems, { priceFactor });\n if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propItems]);\n\n const handleModal = () => {\n let next = !visible;\n\n setVisible(next);\n if (next) Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS', counter });\n };\n\n const handleAmenity = (id, value) => {\n setForm({ ...form, amenities: value ? [...form.amenities, id] : form.amenities.filter((item) => item !== id) });\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:AMENITY', amenity: id, value });\n };\n\n const handleOption = (field, id) => {\n setForm({ ...form, [field]: form[field] === id ? undefined : id });\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}` });\n };\n\n const handleRange = (field, value) => {\n setForm({ ...form, [field]: value });\n\n clearTimeout(timeoutRange);\n timeoutRange = setTimeout(\n () => Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value }),\n SUBMIT_DELAY / 2,\n );\n };\n\n const handleBookingOption = async (field, value) => {\n const next = { ...form, [field]: value };\n setForm(next);\n\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value });\n if (field !== 'freeCancellation') await fetch(next);\n };\n\n const handleClearAll = () => {\n const { clubDiscount, offer, promocode, roomType } = form || {};\n setAllAmenities(false);\n setForm({ ...DEFAULT_FORM, clubDiscount: false });\n\n (clubDiscount || offer || promocode || roomType) && fetch(DEFAULT_FORM);\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:CLEAR_ALL' });\n };\n\n const handleSubmit = () => {\n memoizeForm = form;\n setVisible(false);\n const nextCounter = countFilters(form);\n setCounter(nextCounter);\n onSubmit({ ...form, strictSearch: getStrictSearch(form) });\n Event.publish(EVENT.RATES_FILTER_CLUB, form.clubDiscount);\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:SUBMIT', counter: nextCounter });\n };\n\n const fetch = async (next) => {\n setBusy(true);\n\n const { clubDiscount } = next;\n const strictSearch = getStrictSearch(next);\n const cart = []; // ! TODO: [MF-2006] Store should get the current cart of <Rates>\n const params = { cart, club, clubDiscount, finder, hotel, id, locale, maxRooms, session, strictSearch };\n const { items: nextItems } = (await fetchRates(params).catch(() => {})) || {};\n setItems(nextItems);\n if (nextItems) setFilters(getAvailableFilters(nextItems, { priceFactor }));\n\n setBusy(false);\n };\n\n const has = {\n clubDiscount: (discount !== undefined || clubConditions !== undefined) && !session,\n freeCancellation: true || !!filters.freeCancellation, // * We'll activate freeCancellation filter always.\n offer: !!idoffers,\n promocode: !!promocode,\n roomType: !!roomTypeId,\n };\n\n const filteredItems = select(items, form, { priceFactor }).filter(({ availability = 0 } = {}) => availability > 0);\n const { length: boardsLength } = filters.boards;\n const inlineBoards = !isMobile || (isMobile && boardsLength <= MAX_BOARDS - 1);\n const { name: roomTypeName } = items?.find(({ id } = {}) => id === parseInt(roomTypeId)) || {};\n\n return (\n <>\n <ButtonFilters {...{ counter }} onPress={handleModal} />\n\n <Modal\n fit\n portal\n title={translate(L10N.LABEL_FILTERS)}\n visible={visible}\n onClose={handleModal}\n className={[style.modal, others.className]}\n >\n <ScrollView scrollIndicator scrollTo={visible ? 0.5 : undefined} snap={false} className={style.scrollView}>\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_BOOKING_OPTIONS)}\n </Text>\n\n {has.clubDiscount && (\n <BookingOption\n caption={\n clubConditions\n ? translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action href={clubConditions} small target=\"_blank\" underline className={style.textInline}>\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })\n : translate(L10N.LABEL_CLUB_BENEFITS)\n }\n checked={form.clubDiscount}\n club={club.name}\n field=\"clubDiscount\"\n title={L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE}\n onChange={(field, value) => handleBookingOption(field, value)}\n />\n )}\n\n {BOOKING_OPTIONS.filter(({ field } = {}) => has[field]).map(({ field, title } = {}) => (\n <BookingOption\n key={field}\n checked={form[field]}\n {...{ field, title, roomName: roomTypeName, promocode: promocode?.toUpperCase() }}\n onChange={handleBookingOption}\n />\n ))}\n </View>\n\n {boardsLength > 1 && (\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_ACCOMMODATION_PLAN)}\n </Text>\n\n <View row={inlineBoards} className={styles(style.boards, inlineBoards && style.inline)}>\n {filters.boards.map(({ id, text, type }) => (\n <Option\n checked={form.board === type}\n key={`board:${id}`}\n inline={inlineBoards}\n outlined\n title={text}\n onPress={() => handleOption('board', type)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.prices.length > 1 && (\n <InputRange\n caption={translate(priceFactor === 1 ? L10N.LABEL_SET_PRICE_RANGE : L10N.LABEL_NIGHTLY_PRICES)}\n dataSource={filters.prices}\n resolution={isMobile || filters.prices.length <= 8 ? 6 : 10}\n title={translate(L10N.LABEL_PRICE_RANGE)}\n unit={currencySymbol(currency, { locale })}\n value={form.priceRange}\n onChange={(value) => handleRange('priceRange', value)}\n className={style.section}\n />\n )}\n\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_AMENITIES)}\n </Text>\n\n <View>\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n\n {allAmenities ? (\n <>\n <Text action bold wide className={style.textOthers}>\n {translate(L10N.LABEL_OTHERS)}\n </Text>\n\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => !item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n </>\n ) : (\n <Action onPress={() => setAllAmenities(true)}>{translate(L10N.ACTION_VIEW_MORE)}</Action>\n )}\n </View>\n </View>\n\n {filters.bedTypes.length > 1 && (\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_BED_TYPE)}\n </Text>\n\n <View row>\n {filters.bedTypes.map((bedType) => (\n <Option\n key={`bedType:${bedType}`}\n checked={form.bedType === bedType}\n icon={bedType === 1 ? ICON.BED_SINGLE : ICON.BED_DOUBLE}\n inline\n outlined\n title={translate(bedType === 1 ? L10N.LABEL_BED_TYPE_SINGLE : L10N.LABEL_BED_TYPE_DOUBLE)}\n onPress={() => handleOption('bedType', bedType)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.sizes.length > 1 && (\n <InputRange\n dataSource={filters.sizes}\n resolution={isMobile ? 4 : 6}\n title={translate(L10N.LABEL_ROOM_SIZE)}\n unit={filters.sizeUnit}\n value={form.sizeRange}\n onChange={(value) => handleRange('sizeRange', value)}\n className={style.section}\n />\n )}\n </ScrollView>\n\n <View row className={[style.footer, style.spaceBetween]}>\n <Button transparent onPress={handleClearAll}>\n {translate(L10N.ACTION_CLEAR_ALL)}\n </Button>\n <Button busy={busy} disabled={!filteredItems.length} onPress={handleSubmit}>\n {translate(filteredItems.length ? L10N.LABEL_SHOW_COUNT_RESULTS : L10N.LABEL_NO_EXACT_MATCHES, {\n count: filteredItems.length,\n })}\n </Button>\n </View>\n </Modal>\n </>\n );\n};\n\nFilters.displayName = 'Mirai:Core:Rates:Filters';\n\nFilters.propTypes = {\n clubDiscount: PropTypes.bool,\n clubConditions: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n priceFactor: PropTypes.number,\n onSubmit: PropTypes.func,\n};\n\nexport { Filters };\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,WAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,SAAA,GAAAX,OAAA;AACA,IAAAY,SAAA,GAAAZ,OAAA;AACA,IAAAa,KAAA,GAAAP,uBAAA,CAAAN,OAAA;AACA,IAAAc,QAAA,GAAAd,OAAA;AACA,IAAAe,SAAA,GAAAf,OAAA;AACA,IAAAgB,SAAA,GAAAhB,OAAA;AACA,IAAAiB,YAAA,GAAAjB,OAAA;AAA4C,SAAAkB,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,SAAAb,wBAAAa,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,SAAAvB,uBAAAmC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAE5C,IAAIC,WAAW;AACf,IAAIC,YAAY;AAEhB,MAAMC,OAAO,GAAGC,IAAA,IAAgG;EAAA,IAA/F;IAAEC,cAAc;IAAEC,KAAK,EAAEC,SAAS,GAAG,EAAE;IAAEC,WAAW,GAAG,CAAC;IAAEC,QAAQ,GAAGA,CAAA,KAAM,CAAC,CAAC;IAAE,GAAGC;EAAO,CAAC,GAAAN,IAAA;EACzG,MAAM;IAAEO;EAAS,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EAChC,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAM;IACJC,KAAK,EAAE;MACLC,QAAQ;MACRC,IAAI,GAAG,CAAC,CAAC;MACTC,MAAM,GAAG,CAAC,CAAC;MACXC,KAAK;MACLC,EAAE;MACFC,MAAM;MACNC,UAAU,EAAE;QAAEC;MAAS,CAAC,GAAG,CAAC,CAAC;MAC7BC,OAAO;MACPC,SAAS,EAAE;QAAEC,QAAQ;QAAEC;MAAW,CAAC,GAAG,CAAC;IACzC,CAAC,GAAG,CAAC;EACP,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,MAAM;IAAEC;EAAS,CAAC,GAAGZ,IAAI;EACzB,MAAM;IAAEa;EAAU,CAAC,GAAGZ,MAAM;EAE5B,MAAM,CAACa,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACvD,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EACvC,MAAM,CAACG,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAJ,eAAQ,EAAC,CAAC,CAAC;EACzC,MAAM,CAACK,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAN,eAAQ,EAAC,IAAAO,4BAAmB,EAACjC,SAAS,EAAE;IAAEC;EAAY,CAAC,CAAC,CAAC;EACvF,MAAM,CAACiC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAT,eAAQ,EAACU,sBAAY,CAAC;EAC9C,MAAM,CAACrC,KAAK,EAAEsC,QAAQ,CAAC,GAAG,IAAAX,eAAQ,EAAC1B,SAAS,CAAC;EAC7C,MAAM,CAACsC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAb,eAAQ,EAAC,KAAK,CAAC;EAE7C,IAAAc,gBAAS,EAAC,MAAM;IACd,MAAMC,QAAQ,GAAG/C,WAAW,IAAI;MAC9B,GAAG0C,sBAAY;MACfM,YAAY,EAAE,CAACzB,OAAO,IAAIK,QAAQ,KAAKqB,SAAS,GAAG,CAAC,CAACrB,QAAQ,GAAGqB,SAAS;MACzElC,QAAQ;MACRmC,KAAK,EAAEzB,QAAQ,GAAG,CAAC,CAACA,QAAQ,GAAGwB,SAAS;MACxCpB,SAAS,EAAEA,SAAS,GAAG,CAAC,CAACA,SAAS,GAAGoB,SAAS;MAC9CE,QAAQ,EAAEzB,UAAU,GAAG,CAAC,CAACA,UAAU,GAAGuB;IACxC,CAAC;IAEDR,OAAO,CAACM,QAAQ,CAAC;IACjBX,UAAU,CAAC,IAAAgB,qBAAY,EAACL,QAAQ,CAAC,CAAC;IAClC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAD,gBAAS,EAAC,MAAM;IACd,IAAI,CAACN,IAAI,CAACa,UAAU,IAAIb,IAAI,CAACzB,QAAQ,KAAKA,QAAQ,EAAE;IAEpD,MAAMgC,QAAQ,GAAG;MAAE,GAAGP,IAAI;MAAEa,UAAU,EAAEJ,SAAS;MAAElC;IAAS,CAAC;IAE7D0B,OAAO,CAACM,QAAQ,CAAC;IACjBX,UAAU,CAAC,IAAAgB,qBAAY,EAACL,QAAQ,CAAC,CAAC;IAClCvC,QAAQ,CAAC;MAAE,GAAGuC,QAAQ;MAAEO,YAAY,EAAE,IAAAC,wBAAe,EAACR,QAAQ;IAAE,CAAC,CAAC;IAClE;EACF,CAAC,EAAE,CAAChC,QAAQ,CAAC,CAAC;EAEd,IAAA+B,gBAAS,EAAC,MAAM;IACd,MAAMU,QAAQ,GAAIR,YAAY,IAAK;MACjC,MAAMD,QAAQ,GAAG;QAAE,GAAGP,IAAI;QAAEQ;MAAa,CAAC;MAC1CP,OAAO,CAACM,QAAQ,CAAC;MACjBX,UAAU,CAAC,IAAAgB,qBAAY,EAACL,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEDU,kBAAK,CAACC,SAAS,CAACC,eAAK,CAACC,iBAAiB,EAAEJ,QAAQ,CAAC;IAElD,OAAO,MAAMC,kBAAK,CAACI,WAAW,CAACF,eAAK,CAACC,iBAAiB,EAAEJ,QAAQ,CAAC;EACnE,CAAC,EAAE,CAAChB,IAAI,CAAC,CAAC;EAEV,IAAAM,gBAAS,EAAC,MAAM;IACd,IAAIgB,IAAI,CAACC,SAAS,CAACzD,SAAS,CAAC,KAAKwD,IAAI,CAACC,SAAS,CAAC1D,KAAK,CAAC,EAAEsC,QAAQ,CAACrC,SAAS,CAAC;IAE5E,MAAM0D,WAAW,GAAG,IAAAzB,4BAAmB,EAACjC,SAAS,EAAE;MAAEC;IAAY,CAAC,CAAC;IACnE,IAAIuD,IAAI,CAACC,SAAS,CAACC,WAAW,CAAC,KAAKF,IAAI,CAACC,SAAS,CAAC1B,OAAO,CAAC,EAAEC,UAAU,CAAC0B,WAAW,CAAC;IACpF;EACF,CAAC,EAAE,CAAC1D,SAAS,CAAC,CAAC;EAEf,MAAM2D,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIC,IAAI,GAAG,CAACtB,OAAO;IAEnBC,UAAU,CAACqB,IAAI,CAAC;IAChB,IAAIA,IAAI,EAAET,kBAAK,CAACU,OAAO,CAACR,eAAK,CAACS,OAAO,EAAE;MAAEjD,EAAE,EAAE,eAAe;MAAEgB;IAAQ,CAAC,CAAC;EAC1E,CAAC;EAED,MAAMkC,aAAa,GAAGA,CAAClD,EAAE,EAAEL,KAAK,KAAK;IACnC2B,OAAO,CAAC;MAAE,GAAGD,IAAI;MAAE8B,SAAS,EAAExD,KAAK,GAAG,CAAC,GAAG0B,IAAI,CAAC8B,SAAS,EAAEnD,EAAE,CAAC,GAAGqB,IAAI,CAAC8B,SAAS,CAACC,MAAM,CAAEC,IAAI,IAAKA,IAAI,KAAKrD,EAAE;IAAE,CAAC,CAAC;IAC/GsC,kBAAK,CAACU,OAAO,CAACR,eAAK,CAACS,OAAO,EAAE;MAAEjD,EAAE,EAAE,uBAAuB;MAAEsD,OAAO,EAAEtD,EAAE;MAAEL;IAAM,CAAC,CAAC;EACnF,CAAC;EAED,MAAM4D,YAAY,GAAGA,CAACC,KAAK,EAAExD,EAAE,KAAK;IAClCsB,OAAO,CAAC;MAAE,GAAGD,IAAI;MAAE,CAACmC,KAAK,GAAGnC,IAAI,CAACmC,KAAK,CAAC,KAAKxD,EAAE,GAAG8B,SAAS,GAAG9B;IAAG,CAAC,CAAC;IAClEsC,kBAAK,CAACU,OAAO,CAACR,eAAK,CAACS,OAAO,EAAE;MAAEjD,EAAE,mBAAAyD,MAAA,CAAmBD,KAAK;IAAG,CAAC,CAAC;EAChE,CAAC;EAED,MAAME,WAAW,GAAGA,CAACF,KAAK,EAAE7D,KAAK,KAAK;IACpC2B,OAAO,CAAC;MAAE,GAAGD,IAAI;MAAE,CAACmC,KAAK,GAAG7D;IAAM,CAAC,CAAC;IAEpCgE,YAAY,CAAC7E,YAAY,CAAC;IAC1BA,YAAY,GAAG8E,UAAU,CACvB,MAAMtB,kBAAK,CAACU,OAAO,CAACR,eAAK,CAACS,OAAO,EAAE;MAAEjD,EAAE,mBAAAyD,MAAA,CAAmBD,KAAK,CAAE;MAAE7D;IAAM,CAAC,CAAC,EAC3EkE,sBAAY,GAAG,CACjB,CAAC;EACH,CAAC;EAED,MAAMC,mBAAmB,GAAG,MAAAA,CAAON,KAAK,EAAE7D,KAAK,KAAK;IAClD,MAAMoD,IAAI,GAAG;MAAE,GAAG1B,IAAI;MAAE,CAACmC,KAAK,GAAG7D;IAAM,CAAC;IACxC2B,OAAO,CAACyB,IAAI,CAAC;IAEbT,kBAAK,CAACU,OAAO,CAACR,eAAK,CAACS,OAAO,EAAE;MAAEjD,EAAE,mBAAAyD,MAAA,CAAmBD,KAAK,CAAE;MAAE7D;IAAM,CAAC,CAAC;IACrE,IAAI6D,KAAK,KAAK,kBAAkB,EAAE,MAAMO,KAAK,CAAChB,IAAI,CAAC;EACrD,CAAC;EAED,MAAMiB,cAAc,GAAGA,CAAA,KAAM;IAC3B,MAAM;MAAEnC,YAAY;MAAEE,KAAK;MAAErB,SAAS;MAAEsB;IAAS,CAAC,GAAGX,IAAI,IAAI,CAAC,CAAC;IAC/DT,eAAe,CAAC,KAAK,CAAC;IACtBU,OAAO,CAAC;MAAE,GAAGC,sBAAY;MAAEM,YAAY,EAAE;IAAM,CAAC,CAAC;IAEjD,CAACA,YAAY,IAAIE,KAAK,IAAIrB,SAAS,IAAIsB,QAAQ,KAAK+B,KAAK,CAACxC,sBAAY,CAAC;IACvEe,kBAAK,CAACU,OAAO,CAACR,eAAK,CAACS,OAAO,EAAE;MAAEjD,EAAE,EAAE;IAA0B,CAAC,CAAC;EACjE,CAAC;EAED,MAAMiE,YAAY,GAAGA,CAAA,KAAM;IACzBpF,WAAW,GAAGwC,IAAI;IAClBK,UAAU,CAAC,KAAK,CAAC;IACjB,MAAMwC,WAAW,GAAG,IAAAjC,qBAAY,EAACZ,IAAI,CAAC;IACtCJ,UAAU,CAACiD,WAAW,CAAC;IACvB7E,QAAQ,CAAC;MAAE,GAAGgC,IAAI;MAAEc,YAAY,EAAE,IAAAC,wBAAe,EAACf,IAAI;IAAE,CAAC,CAAC;IAC1DiB,kBAAK,CAACU,OAAO,CAACR,eAAK,CAACC,iBAAiB,EAAEpB,IAAI,CAACQ,YAAY,CAAC;IACzDS,kBAAK,CAACU,OAAO,CAACR,eAAK,CAACS,OAAO,EAAE;MAAEjD,EAAE,EAAE,sBAAsB;MAAEgB,OAAO,EAAEkD;IAAY,CAAC,CAAC;EACpF,CAAC;EAED,MAAMH,KAAK,GAAG,MAAOhB,IAAI,IAAK;IAC5BhC,OAAO,CAAC,IAAI,CAAC;IAEb,MAAM;MAAEc;IAAa,CAAC,GAAGkB,IAAI;IAC7B,MAAMZ,YAAY,GAAG,IAAAC,wBAAe,EAACW,IAAI,CAAC;IAC1C,MAAMoB,IAAI,GAAG,EAAE,CAAC,CAAC;IACjB,MAAMC,MAAM,GAAG;MAAED,IAAI;MAAEtE,IAAI;MAAEgC,YAAY;MAAE/B,MAAM;MAAEC,KAAK;MAAEC,EAAE;MAAEC,MAAM;MAAEE,QAAQ;MAAEC,OAAO;MAAE+B;IAAa,CAAC;IACvG,MAAM;MAAEjD,KAAK,EAAEmF;IAAU,CAAC,GAAG,CAAC,MAAM,IAAAC,oBAAU,EAACF,MAAM,CAAC,CAACG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7E/C,QAAQ,CAAC6C,SAAS,CAAC;IACnB,IAAIA,SAAS,EAAElD,UAAU,CAAC,IAAAC,4BAAmB,EAACiD,SAAS,EAAE;MAAEjF;IAAY,CAAC,CAAC,CAAC;IAE1E2B,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC;EAED,MAAMjD,GAAG,GAAG;IACV+D,YAAY,EAAE,CAACpB,QAAQ,KAAKqB,SAAS,IAAI7C,cAAc,KAAK6C,SAAS,KAAK,CAAC1B,OAAO;IAClFoE,gBAAgB,EAAE,IAAI,IAAI,CAAC,CAACtD,OAAO,CAACsD,gBAAgB;IAAE;IACtDzC,KAAK,EAAE,CAAC,CAACzB,QAAQ;IACjBI,SAAS,EAAE,CAAC,CAACA,SAAS;IACtBsB,QAAQ,EAAE,CAAC,CAACzB;EACd,CAAC;EAED,MAAMkE,aAAa,GAAG,IAAAC,gBAAM,EAACxF,KAAK,EAAEmC,IAAI,EAAE;IAAEjC;EAAY,CAAC,CAAC,CAACgE,MAAM,CAAC;IAAA,IAAC;MAAEuB,YAAY,GAAG;IAAE,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA9C,SAAA,GAAA8C,SAAA,MAAG,CAAC,CAAC;IAAA,OAAKD,YAAY,GAAG,CAAC;EAAA,EAAC;EAClH,MAAM;IAAEE,MAAM,EAAEC;EAAa,CAAC,GAAG5D,OAAO,CAAC6D,MAAM;EAC/C,MAAMC,YAAY,GAAG,CAACzF,QAAQ,IAAKA,QAAQ,IAAIuF,YAAY,IAAIG,oBAAU,GAAG,CAAE;EAC9E,MAAM;IAAEC,IAAI,EAAEC;EAAa,CAAC,GAAG,CAAAjG,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEkG,IAAI,CAAC;IAAA,IAAC;MAAEpF;IAAG,CAAC,GAAA4E,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA9C,SAAA,GAAA8C,SAAA,MAAG,CAAC,CAAC;IAAA,OAAK5E,EAAE,KAAKqF,QAAQ,CAAC9E,UAAU,CAAC;EAAA,EAAC,KAAI,CAAC,CAAC;EAE9F,oBACE7D,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAA5I,MAAA,CAAAmB,OAAA,CAAA0H,QAAA,qBACE7I,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAACvI,SAAA,CAAAyI,MAAa;IAAOxE,OAAO;IAAIyE,OAAO,EAAE3C;EAAY,CAAE,CAAC,eAExDpG,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAmJ,KAAK;IACJC,GAAG;IACHC,MAAM;IACNC,KAAK,EAAEpG,SAAS,CAACqG,cAAI,CAACC,aAAa,CAAE;IACrCtE,OAAO,EAAEA,OAAQ;IACjBuE,OAAO,EAAElD,WAAY;IACrBmD,SAAS,EAAE,CAAC/I,KAAK,CAACgJ,KAAK,EAAE5G,MAAM,CAAC2G,SAAS;EAAE,gBAE3CvJ,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAA4J,UAAU;IAACC,eAAe;IAACC,QAAQ,EAAE5E,OAAO,GAAG,GAAG,GAAGK,SAAU;IAACwE,IAAI,EAAE,KAAM;IAACL,SAAS,EAAE/I,KAAK,CAACqJ;EAAW,gBACxG7J,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAiK,IAAI;IAACP,SAAS,EAAE/I,KAAK,CAACuJ;EAAQ,gBAC7B/J,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAmK,IAAI;IAACC,IAAI;IAACC,QAAQ;EAAA,GAChBnH,SAAS,CAACqG,cAAI,CAACe,qBAAqB,CACjC,CAAC,EAEN/I,GAAG,CAAC+D,YAAY,iBACfnF,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAACxI,SAAA,CAAAgK,aAAa;IACZC,OAAO,EACL9H,cAAc,GACVQ,SAAS,CAACqG,cAAI,CAACkB,qBAAqB,EAAE;MACpCC,UAAU,eACRvK,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAA2K,MAAM;QAACC,IAAI,EAAElI,cAAe;QAACmI,KAAK;QAACC,MAAM,EAAC,QAAQ;QAACC,SAAS;QAACrB,SAAS,EAAE/I,KAAK,CAACqK;MAAW,GACvF9H,SAAS,CAACqG,cAAI,CAAC0B,2BAA2B,CACrC;IAEZ,CAAC,CAAC,GACF/H,SAAS,CAACqG,cAAI,CAAC2B,mBAAmB,CACvC;IACDC,OAAO,EAAErG,IAAI,CAACQ,YAAa;IAC3BhC,IAAI,EAAEA,IAAI,CAACqF,IAAK;IAChB1B,KAAK,EAAC,cAAc;IACpBqC,KAAK,EAAEC,cAAI,CAAC6B,4BAA6B;IACzCC,QAAQ,EAAEA,CAACpE,KAAK,EAAE7D,KAAK,KAAKmE,mBAAmB,CAACN,KAAK,EAAE7D,KAAK;EAAE,CAC/D,CACF,EAEAkI,yBAAe,CAACzE,MAAM,CAAC;IAAA,IAAC;MAAEI;IAAM,CAAC,GAAAoB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA9C,SAAA,GAAA8C,SAAA,MAAG,CAAC,CAAC;IAAA,OAAK9G,GAAG,CAAC0F,KAAK,CAAC;EAAA,EAAC,CAACsE,GAAG,CAAC;IAAA,IAAC;MAAEtE,KAAK;MAAEqC;IAAM,CAAC,GAAAjB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA9C,SAAA,GAAA8C,SAAA,MAAG,CAAC,CAAC;IAAA,oBAChFlI,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAACxI,SAAA,CAAAgK,aAAa;MACZiB,GAAG,EAAEvE,KAAM;MACXkE,OAAO,EAAErG,IAAI,CAACmC,KAAK,CAAE;MACfA,KAAK;MAAEqC,KAAK;MAAEmC,QAAQ,EAAE7C,YAAY;MAAEzE,SAAS,EAAEA,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEuH,WAAW,CAAC,CAAC;MAC/EL,QAAQ,EAAE9D;IAAoB,CAC/B,CAAC;EAAA,CACH,CACG,CAAC,EAENgB,YAAY,GAAG,CAAC,iBACfpI,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAiK,IAAI;IAACP,SAAS,EAAE/I,KAAK,CAACuJ;EAAQ,gBAC7B/J,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAmK,IAAI;IAACC,IAAI;IAACC,QAAQ;EAAA,GAChBnH,SAAS,CAACqG,cAAI,CAACoC,wBAAwB,CACpC,CAAC,eAEPxL,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAiK,IAAI;IAAC2B,GAAG,EAAEnD,YAAa;IAACiB,SAAS,EAAE,IAAAmC,UAAM,EAAClL,KAAK,CAAC6H,MAAM,EAAEC,YAAY,IAAI9H,KAAK,CAACmL,MAAM;EAAE,GACpFnH,OAAO,CAAC6D,MAAM,CAAC+C,GAAG,CAACQ,KAAA;IAAA,IAAC;MAAEtI,EAAE;MAAEuI,IAAI;MAAEC;IAAK,CAAC,GAAAF,KAAA;IAAA,oBACrC5L,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAChI,YAAA,CAAAmL,MAAM;MACLf,OAAO,EAAErG,IAAI,CAACqH,KAAK,KAAKF,IAAK;MAC7BT,GAAG,WAAAtE,MAAA,CAAWzD,EAAE,CAAG;MACnBqI,MAAM,EAAErD,YAAa;MACrB2D,QAAQ;MACR9C,KAAK,EAAE0C,IAAK;MACZ9C,OAAO,EAAEA,CAAA,KAAMlC,YAAY,CAAC,OAAO,EAAEiF,IAAI,CAAE;MAC3CvC,SAAS,EAAE/I,KAAK,CAAC0L;IAAO,CACzB,CAAC;EAAA,CACH,CACG,CACF,CACP,EAEA1H,OAAO,CAAC2H,MAAM,CAAChE,MAAM,GAAG,CAAC,iBACxBnI,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC1I,WAAA,CAAAkM,UAAU;IACT/B,OAAO,EAAEtH,SAAS,CAACL,WAAW,KAAK,CAAC,GAAG0G,cAAI,CAACiD,qBAAqB,GAAGjD,cAAI,CAACkD,oBAAoB,CAAE;IAC/FC,UAAU,EAAE/H,OAAO,CAAC2H,MAAO;IAC3BK,UAAU,EAAE3J,QAAQ,IAAI2B,OAAO,CAAC2H,MAAM,CAAChE,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAG;IAC5DgB,KAAK,EAAEpG,SAAS,CAACqG,cAAI,CAACqD,iBAAiB,CAAE;IACzCC,IAAI,EAAE,IAAAC,sBAAc,EAACzJ,QAAQ,EAAE;MAAEK;IAAO,CAAC,CAAE;IAC3CN,KAAK,EAAE0B,IAAI,CAACa,UAAW;IACvB0F,QAAQ,EAAGjI,KAAK,IAAK+D,WAAW,CAAC,YAAY,EAAE/D,KAAK,CAAE;IACtDsG,SAAS,EAAE/I,KAAK,CAACuJ;EAAQ,CAC1B,CACF,eAED/J,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAiK,IAAI;IAACP,SAAS,EAAE/I,KAAK,CAACuJ;EAAQ,gBAC7B/J,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAmK,IAAI;IAACC,IAAI;IAACC,QAAQ;IAAC0C,IAAI;EAAA,GACrB7J,SAAS,CAACqG,cAAI,CAACyD,eAAe,CAC3B,CAAC,eAEP7M,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAiK,IAAI,qBACH9J,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAiK,IAAI;IAAC2B,GAAG;IAAClC,SAAS,EAAE/I,KAAK,CAACiG;EAAU,GAClCjC,OAAO,CAACiC,SAAS,CACfC,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACmG,SAAS,CAAC,CAChC1B,GAAG,CAAC2B,KAAA;IAAA,IAAC;MAAEzJ,EAAE;MAAEuI;IAAK,CAAC,GAAAkB,KAAA;IAAA,oBAChB/M,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAACzI,QAAA,CAAA6M,OAAO;MACNhC,OAAO,EAAErG,IAAI,CAAC8B,SAAS,CAACwG,QAAQ,CAAC3J,EAAE,CAAE;MACrCA,EAAE,EAAEA,EAAG;MACP+H,GAAG,EAAE/H,EAAG;MACR4J,KAAK,EAAErB,IAAK;MACZX,QAAQ,EAAE1E;IAAc,CACzB,CAAC;EAAA,CACH,CACC,CAAC,EAENvC,YAAY,gBACXjE,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAA5I,MAAA,CAAAmB,OAAA,CAAA0H,QAAA,qBACE7I,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAmK,IAAI;IAACmD,MAAM;IAAClD,IAAI;IAAC2C,IAAI;IAACrD,SAAS,EAAE/I,KAAK,CAAC4M;EAAW,GAChDrK,SAAS,CAACqG,cAAI,CAACiE,YAAY,CACxB,CAAC,eAEPrN,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAiK,IAAI;IAAC2B,GAAG;IAAClC,SAAS,EAAE/I,KAAK,CAACiG;EAAU,GAClCjC,OAAO,CAACiC,SAAS,CACfC,MAAM,CAAEC,IAAI,IAAK,CAACA,IAAI,CAACmG,SAAS,CAAC,CACjC1B,GAAG,CAACkC,KAAA;IAAA,IAAC;MAAEhK,EAAE;MAAEuI;IAAK,CAAC,GAAAyB,KAAA;IAAA,oBAChBtN,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAACzI,QAAA,CAAA6M,OAAO;MACNhC,OAAO,EAAErG,IAAI,CAAC8B,SAAS,CAACwG,QAAQ,CAAC3J,EAAE,CAAE;MACrCA,EAAE,EAAEA,EAAG;MACP+H,GAAG,EAAE/H,EAAG;MACR4J,KAAK,EAAErB,IAAK;MACZX,QAAQ,EAAE1E;IAAc,CACzB,CAAC;EAAA,CACH,CACC,CACN,CAAC,gBAEHxG,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAA2K,MAAM;IAACzB,OAAO,EAAEA,CAAA,KAAM7E,eAAe,CAAC,IAAI;EAAE,GAAEnB,SAAS,CAACqG,cAAI,CAACmE,gBAAgB,CAAU,CAEtF,CACF,CAAC,EAEN/I,OAAO,CAACgJ,QAAQ,CAACrF,MAAM,GAAG,CAAC,iBAC1BnI,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAiK,IAAI;IAACP,SAAS,EAAE/I,KAAK,CAACuJ;EAAQ,gBAC7B/J,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAmK,IAAI;IAACC,IAAI;IAACC,QAAQ;IAAC0C,IAAI;EAAA,GACrB7J,SAAS,CAACqG,cAAI,CAACqE,cAAc,CAC1B,CAAC,eAEPzN,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAiK,IAAI;IAAC2B,GAAG;EAAA,GACNjH,OAAO,CAACgJ,QAAQ,CAACpC,GAAG,CAAEsC,OAAO,iBAC5B1N,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAChI,YAAA,CAAAmL,MAAM;IACLV,GAAG,aAAAtE,MAAA,CAAa2G,OAAO,CAAG;IAC1B1C,OAAO,EAAErG,IAAI,CAAC+I,OAAO,KAAKA,OAAQ;IAClCC,IAAI,EAAED,OAAO,KAAK,CAAC,GAAGE,cAAI,CAACC,UAAU,GAAGD,cAAI,CAACE,UAAW;IACxDnC,MAAM;IACNM,QAAQ;IACR9C,KAAK,EAAEpG,SAAS,CAAC2K,OAAO,KAAK,CAAC,GAAGtE,cAAI,CAAC2E,qBAAqB,GAAG3E,cAAI,CAAC4E,qBAAqB,CAAE;IAC1FjF,OAAO,EAAEA,CAAA,KAAMlC,YAAY,CAAC,SAAS,EAAE6G,OAAO,CAAE;IAChDnE,SAAS,EAAE/I,KAAK,CAAC0L;EAAO,CACzB,CACF,CACG,CACF,CACP,EAEA1H,OAAO,CAACyJ,KAAK,CAAC9F,MAAM,GAAG,CAAC,iBACvBnI,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC1I,WAAA,CAAAkM,UAAU;IACTG,UAAU,EAAE/H,OAAO,CAACyJ,KAAM;IAC1BzB,UAAU,EAAE3J,QAAQ,GAAG,CAAC,GAAG,CAAE;IAC7BsG,KAAK,EAAEpG,SAAS,CAACqG,cAAI,CAAC8E,eAAe,CAAE;IACvCxB,IAAI,EAAElI,OAAO,CAAC2J,QAAS;IACvBlL,KAAK,EAAE0B,IAAI,CAACyJ,SAAU;IACtBlD,QAAQ,EAAGjI,KAAK,IAAK+D,WAAW,CAAC,WAAW,EAAE/D,KAAK,CAAE;IACrDsG,SAAS,EAAE/I,KAAK,CAACuJ;EAAQ,CAC1B,CAEO,CAAC,eAEb/J,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAiK,IAAI;IAAC2B,GAAG;IAAClC,SAAS,EAAE,CAAC/I,KAAK,CAAC6N,MAAM,EAAE7N,KAAK,CAAC8N,YAAY;EAAE,gBACtDtO,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAiJ,MAAM;IAACyF,WAAW;IAACxF,OAAO,EAAEzB;EAAe,GACzCvE,SAAS,CAACqG,cAAI,CAACoF,gBAAgB,CAC1B,CAAC,eACTxO,MAAA,CAAAmB,OAAA,CAAAyH,aAAA,CAAC/I,GAAA,CAAAiJ,MAAM;IAAC1E,IAAI,EAAEA,IAAK;IAACqK,QAAQ,EAAE,CAAC1G,aAAa,CAACI,MAAO;IAACY,OAAO,EAAExB;EAAa,GACxExE,SAAS,CAACgF,aAAa,CAACI,MAAM,GAAGiB,cAAI,CAACsF,wBAAwB,GAAGtF,cAAI,CAACuF,sBAAsB,EAAE;IAC7FC,KAAK,EAAE7G,aAAa,CAACI;EACvB,CAAC,CACK,CACJ,CACD,CACP,CAAC;AAEP,CAAC;AAAC0G,OAAA,CAAAxM,OAAA,GAAAA,OAAA;AAEFA,OAAO,CAACyM,WAAW,GAAG,0BAA0B;AAEhDzM,OAAO,CAAC0M,SAAS,GAAG;EAClB5J,YAAY,EAAE6J,kBAAS,CAACC,IAAI;EAC5B1M,cAAc,EAAEyM,kBAAS,CAACE,MAAM;EAChC1M,KAAK,EAAEwM,kBAAS,CAACG,OAAO,CAACH,kBAAS,CAACI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EAC7C1M,WAAW,EAAEsM,kBAAS,CAACK,MAAM;EAC7B1M,QAAQ,EAAEqM,kBAAS,CAACM;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"Filters.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Filters","_Filters2","_Filters3","_Filters4","_Filters5","style","_helpers","_helpers2","_helpers3","_components2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","currentCurrency","memoizeForm","timeoutRange","Filters","_ref","clubConditions","items","propItems","priceFactor","onSubmit","others","isMobile","useDevice","translate","useLocale","value","currency","club","finder","hotel","id","locale","occupation","maxRooms","session","urlParams","idoffers","roomTypeId","useStore","discount","promocode","allAmenities","setAllAmenities","useState","busy","setBusy","counter","setCounter","filters","setFilters","getAvailableFilters","form","setForm","DEFAULT_FORM","setItems","visible","setVisible","useEffect","nextForm","clubDiscount","undefined","offer","roomType","countFilters","priceRange","strictSearch","getStrictSearch","setNextState","setClubDiscount","setClubPromocode","_ref2","Event","subscribe","EVENT","RATES_FILTER_CLUB","RATES_FILTER_PROMOCODE","unsubscribe","JSON","stringify","nextFilters","handleModal","next","publish","METRICS","handleAmenity","amenities","filter","item","amenity","handleOption","field","concat","handleRange","clearTimeout","setTimeout","SUBMIT_DELAY","handleBookingOption","fetch","handleClearAll","handleSubmit","nextCounter","cart","params","nextItems","fetchRates","catch","freeCancellation","filteredItems","select","availability","arguments","length","boardsLength","boards","inlineBoards","MAX_BOARDS","name","roomTypeName","find","parseInt","createElement","Fragment","Button","onPress","Modal","fit","portal","title","L10N","LABEL_FILTERS","onClose","className","modal","ScrollView","scrollIndicator","scrollTo","snap","scrollView","View","section","Text","bold","headline","LABEL_BOOKING_OPTIONS","BookingOption","caption","LABEL_CLUB_CONDITIONS","conditions","Action","href","small","target","underline","textInline","ACTION_CLUB_VIEW_CONDITIONS","LABEL_CLUB_BENEFITS","checked","LABEL_CLUB_MEMBERS_EXCLUSIVE","onChange","BOOKING_OPTIONS","map","key","roomName","toUpperCase","LABEL_ACCOMMODATION_PLAN","row","styles","inline","_ref3","text","type","Option","board","outlined","option","prices","InputRange","LABEL_SET_PRICE_RANGE","LABEL_NIGHTLY_PRICES","dataSource","resolution","LABEL_PRICE_RANGE","unit","currencySymbol","wide","LABEL_AMENITIES","highlight","_ref4","Amenity","includes","label","action","textOthers","LABEL_OTHERS","_ref5","ACTION_VIEW_MORE","bedTypes","LABEL_BED_TYPE","bedType","icon","ICON","BED_SINGLE","BED_DOUBLE","LABEL_BED_TYPE_SINGLE","LABEL_BED_TYPE_DOUBLE","sizes","LABEL_ROOM_SIZE","sizeUnit","sizeRange","footer","spaceBetween","transparent","ACTION_CLEAR_ALL","disabled","LABEL_SHOW_COUNT_RESULTS","LABEL_NO_EXACT_MATCHES","count","exports","displayName","propTypes","PropTypes","bool","string","arrayOf","shape","number","func"],"sources":["../../../../../src/components/Rates/components/Filters/Filters.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencySymbol, useLocale } from '@mirai/locale';\nimport { Action, Button, Modal, ScrollView, styles, useDevice, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { InputRange } from './components';\nimport { Amenity } from './Filters.Amenity';\nimport { BookingOption } from './Filters.BookingOption';\nimport { Button as ButtonFilters } from './Filters.Button';\nimport { BOOKING_OPTIONS, DEFAULT_FORM, MAX_BOARDS } from './Filters.constants';\nimport { L10N } from './Filters.l10n';\nimport * as style from './Filters.module.css';\nimport { countFilters, getAvailableFilters, getStrictSearch } from './helpers';\nimport { EVENT, ICON, SUBMIT_DELAY } from '../../../helpers';\nimport { fetchRates, select } from '../../helpers';\nimport { Option } from '../Item/components';\n\nlet currentCurrency;\nlet memoizeForm;\nlet timeoutRange;\n\nconst Filters = ({ clubConditions, items: propItems = [], priceFactor = 1, onSubmit = () => {}, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n currency,\n club = {},\n finder = {},\n hotel,\n id,\n locale,\n occupation: { maxRooms } = {},\n session,\n urlParams: { idoffers, roomTypeId } = {},\n } = {},\n } = useStore();\n\n const { discount } = club;\n const { promocode } = finder;\n\n const [allAmenities, setAllAmenities] = useState(false);\n const [busy, setBusy] = useState(false);\n const [counter, setCounter] = useState(0);\n const [filters, setFilters] = useState(getAvailableFilters(propItems, { priceFactor }));\n const [form, setForm] = useState(DEFAULT_FORM);\n const [items, setItems] = useState(propItems);\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n const nextForm = memoizeForm || {\n ...DEFAULT_FORM,\n clubDiscount: !session && discount !== undefined ? !!discount : undefined,\n offer: idoffers ? !!idoffers : undefined,\n promocode: promocode ? !!promocode : undefined,\n roomType: roomTypeId ? !!roomTypeId : undefined,\n };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!form.priceRange || (currentCurrency !== undefined && currentCurrency === currency)) return;\n\n currentCurrency = currency;\n const nextForm = { ...form, priceRange: undefined };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n onSubmit({ ...nextForm, strictSearch: getStrictSearch(nextForm) });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency]);\n\n useEffect(() => {\n const setNextState = (nextForm) => {\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n };\n const setClubDiscount = (clubDiscount) => setNextState({ ...form, clubDiscount });\n\n const setClubPromocode = ({ promocode }) => setNextState({ ...form, promocode });\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, setClubDiscount);\n Event.subscribe(EVENT.RATES_FILTER_PROMOCODE, setClubPromocode);\n\n return () => {\n Event.unsubscribe(EVENT.RATES_FILTER_CLUB, setClubDiscount);\n Event.unsubscribe(EVENT.RATES_FILTER_PROMOCODE, setClubPromocode);\n };\n }, [form]);\n\n useEffect(() => {\n if (JSON.stringify(propItems) !== JSON.stringify(items)) setItems(propItems);\n\n const nextFilters = getAvailableFilters(propItems, { priceFactor });\n if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propItems]);\n\n const handleModal = () => {\n let next = !visible;\n\n setVisible(next);\n if (next) Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS', counter });\n };\n\n const handleAmenity = (id, value) => {\n setForm({ ...form, amenities: value ? [...form.amenities, id] : form.amenities.filter((item) => item !== id) });\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:AMENITY', amenity: id, value });\n };\n\n const handleOption = (field, id) => {\n setForm({ ...form, [field]: form[field] === id ? undefined : id });\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}` });\n };\n\n const handleRange = (field, value) => {\n setForm({ ...form, [field]: value });\n\n clearTimeout(timeoutRange);\n timeoutRange = setTimeout(\n () => Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value }),\n SUBMIT_DELAY / 2,\n );\n };\n\n const handleBookingOption = async (field, value) => {\n const next = { ...form, [field]: value };\n setForm(next);\n\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value });\n if (field !== 'freeCancellation') await fetch(next);\n };\n\n const handleClearAll = () => {\n const { clubDiscount, offer, promocode, roomType } = form || {};\n setAllAmenities(false);\n setForm({ ...DEFAULT_FORM, clubDiscount: false });\n\n (clubDiscount || offer || promocode || roomType) && fetch(DEFAULT_FORM);\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:CLEAR_ALL' });\n };\n\n const handleSubmit = () => {\n memoizeForm = form;\n setVisible(false);\n const nextCounter = countFilters(form);\n setCounter(nextCounter);\n onSubmit({ ...form, strictSearch: getStrictSearch(form) });\n Event.publish(EVENT.RATES_FILTER_CLUB, form.clubDiscount);\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:SUBMIT', counter: nextCounter });\n };\n\n const fetch = async (next) => {\n setBusy(true);\n\n const { clubDiscount } = next;\n const strictSearch = getStrictSearch(next);\n const cart = []; // ! TODO: [MF-2006] Store should get the current cart of <Rates>\n const params = { cart, club, clubDiscount, finder, hotel, id, locale, maxRooms, session, strictSearch };\n const { items: nextItems } = (await fetchRates(params).catch(() => {})) || {};\n setItems(nextItems);\n if (nextItems) setFilters(getAvailableFilters(nextItems, { priceFactor }));\n\n setBusy(false);\n };\n\n const has = {\n clubDiscount: (discount !== undefined || clubConditions !== undefined) && !session,\n freeCancellation: true || !!filters.freeCancellation, // * We'll activate freeCancellation filter always.\n offer: !!idoffers,\n promocode: !!promocode,\n roomType: !!roomTypeId,\n };\n\n const filteredItems = select(items, form, { priceFactor }).filter(({ availability = 0 } = {}) => availability > 0);\n const { length: boardsLength } = filters.boards;\n const inlineBoards = !isMobile || (isMobile && boardsLength <= MAX_BOARDS - 1);\n const { name: roomTypeName } = items?.find(({ id } = {}) => id === parseInt(roomTypeId)) || {};\n\n return (\n <>\n <ButtonFilters {...{ counter }} onPress={handleModal} />\n\n <Modal\n fit\n portal\n title={translate(L10N.LABEL_FILTERS)}\n visible={visible}\n onClose={handleModal}\n className={[style.modal, others.className]}\n >\n <ScrollView scrollIndicator scrollTo={visible ? 0.5 : undefined} snap={false} className={style.scrollView}>\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_BOOKING_OPTIONS)}\n </Text>\n\n {has.clubDiscount && (\n <BookingOption\n caption={\n clubConditions\n ? translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action href={clubConditions} small target=\"_blank\" underline className={style.textInline}>\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })\n : translate(L10N.LABEL_CLUB_BENEFITS)\n }\n checked={form.clubDiscount}\n club={club.name}\n field=\"clubDiscount\"\n title={L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE}\n onChange={(field, value) => handleBookingOption(field, value)}\n />\n )}\n\n {BOOKING_OPTIONS.filter(({ field } = {}) => has[field]).map(({ field, title } = {}) => (\n <BookingOption\n key={field}\n checked={form[field]}\n {...{ field, title, roomName: roomTypeName, promocode: promocode?.toUpperCase() }}\n onChange={handleBookingOption}\n />\n ))}\n </View>\n\n {boardsLength > 1 && (\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_ACCOMMODATION_PLAN)}\n </Text>\n\n <View row={inlineBoards} className={styles(style.boards, inlineBoards && style.inline)}>\n {filters.boards.map(({ id, text, type }) => (\n <Option\n checked={form.board === type}\n key={`board:${id}`}\n inline={inlineBoards}\n outlined\n title={text}\n onPress={() => handleOption('board', type)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.prices.length > 1 && (\n <InputRange\n caption={translate(priceFactor === 1 ? L10N.LABEL_SET_PRICE_RANGE : L10N.LABEL_NIGHTLY_PRICES)}\n dataSource={filters.prices}\n resolution={isMobile || filters.prices.length <= 8 ? 6 : 10}\n title={translate(L10N.LABEL_PRICE_RANGE)}\n unit={currencySymbol(currency, { locale })}\n value={form.priceRange}\n onChange={(value) => handleRange('priceRange', value)}\n className={style.section}\n />\n )}\n\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_AMENITIES)}\n </Text>\n\n <View>\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n\n {allAmenities ? (\n <>\n <Text action bold wide className={style.textOthers}>\n {translate(L10N.LABEL_OTHERS)}\n </Text>\n\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => !item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n </>\n ) : (\n <Action onPress={() => setAllAmenities(true)}>{translate(L10N.ACTION_VIEW_MORE)}</Action>\n )}\n </View>\n </View>\n\n {filters.bedTypes.length > 1 && (\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_BED_TYPE)}\n </Text>\n\n <View row>\n {filters.bedTypes.map((bedType) => (\n <Option\n key={`bedType:${bedType}`}\n checked={form.bedType === bedType}\n icon={bedType === 1 ? ICON.BED_SINGLE : ICON.BED_DOUBLE}\n inline\n outlined\n title={translate(bedType === 1 ? L10N.LABEL_BED_TYPE_SINGLE : L10N.LABEL_BED_TYPE_DOUBLE)}\n onPress={() => handleOption('bedType', bedType)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.sizes.length > 1 && (\n <InputRange\n dataSource={filters.sizes}\n resolution={isMobile ? 4 : 6}\n title={translate(L10N.LABEL_ROOM_SIZE)}\n unit={filters.sizeUnit}\n value={form.sizeRange}\n onChange={(value) => handleRange('sizeRange', value)}\n className={style.section}\n />\n )}\n </ScrollView>\n\n <View row className={[style.footer, style.spaceBetween]}>\n <Button transparent onPress={handleClearAll}>\n {translate(L10N.ACTION_CLEAR_ALL)}\n </Button>\n <Button busy={busy} disabled={!filteredItems.length} onPress={handleSubmit}>\n {translate(filteredItems.length ? L10N.LABEL_SHOW_COUNT_RESULTS : L10N.LABEL_NO_EXACT_MATCHES, {\n count: filteredItems.length,\n })}\n </Button>\n </View>\n </Modal>\n </>\n );\n};\n\nFilters.displayName = 'Mirai:Core:Rates:Filters';\n\nFilters.propTypes = {\n clubDiscount: PropTypes.bool,\n clubConditions: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n priceFactor: PropTypes.number,\n onSubmit: PropTypes.func,\n};\n\nexport { Filters };\n"],"mappings":"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"}
|
|
@@ -169,6 +169,13 @@ const useRates = () => {
|
|
|
169
169
|
promocode: ''
|
|
170
170
|
}
|
|
171
171
|
});
|
|
172
|
+
_dataSources.Event.publish(_helpers2.EVENT.RATES_FILTER_PROMOCODE, {
|
|
173
|
+
promocode: undefined
|
|
174
|
+
});
|
|
175
|
+
} else if (nextPromocode !== finder.promocode) {
|
|
176
|
+
_dataSources.Event.publish(_helpers2.EVENT.RATES_FILTER_PROMOCODE, {
|
|
177
|
+
promocode: nextPromocode
|
|
178
|
+
});
|
|
172
179
|
}
|
|
173
180
|
if (notifications.includes(_Rates.NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {
|
|
174
181
|
_dataSources.Event.publish(_helpers2.EVENT.NOTIFICATION, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRates.js","names":["_dataSources","require","_locale","_services","_ui","_react","_helpers","_helpers2","_helpers3","_Rates","_Rates2","fetchCall","useRates","isMobile","mobile","useDevice","translate","useLocale","set","value","club","currency","finder","hotel","id","language","locale","rates","cart","storeCart","meta","occupation","maxRooms","urlParams","session","skeleton","useStore","refRoomSelector","useRef","setCart","useState","clubDiscount","setClubDiscount","discount","clubRate","setClubRate","dataSource","setDataSource","fetching","setFetching","metaBoard","setMetaBoard","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","device","multiRoom","length","useEffect","current","offsetHeight","offsetTop","window","scrollTo","top","behavior","undefined","fetch","nextRoom","callback","next","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","tracking","publish","RATES_RESPONSE","error","event","response","getBoard","then","board","METRICS","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","checkNotifications","nextDataSource","nextPromocode","notifications","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","promocode","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","nextOccupation","arguments","FINDER","fetchUrlParams","location","search","checkin","nights","parties","getFinderParams","replaceUrlParams","params","active","selectedIds","map","roomId","join","parseToParties","lastFetchCall","ServiceRates","get","externalSignout","signout","hotels","actions","debounce","state","exports"],"sources":["../../../../src/components/Rates/hooks/useRates.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceRates } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { debounce, fetchUrlParams } from '../../../helpers';\nimport { EVENT, parseToParties, replaceUrlParams } from '../../helpers';\nimport { getBoard, getFinderParams, signout } from '../helpers';\nimport { NOTIFICATION, UTM_SOURCE_NAME } from '../Rates.constants';\nimport { L10N } from '../Rates.l10n';\n\nlet fetchCall = 0;\n\nexport const useRates = () => {\n const { isMobile, mobile } = useDevice();\n const { translate } = useLocale();\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n hotel = {},\n id,\n language,\n locale,\n rates: { cart: storeCart = [], meta } = {},\n occupation: { maxRooms } = {},\n urlParams,\n session,\n skeleton = false,\n },\n } = useStore();\n const refRoomSelector = useRef();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [clubRate, setClubRate] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(false);\n const [metaBoard, setMetaBoard] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place } = finder;\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const multiRoom = occupation?.length > 1;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n window.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n room !== undefined && fetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n const callback = async (next) => {\n setClubDiscount(typeof next !== 'object' ? next : undefined);\n clubRate && setClubRate(false);\n };\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubRate]);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n Event.publish(EVENT.RATES_RESPONSE, {\n error: !!responseError,\n event: EVENT.RATES_RESPONSE,\n response: dataSource || responseError,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n useEffect(() => {\n if (!dataSource || !storeCart.length) return;\n\n getBoard({ cart, dataSource, storeCart })\n .then((board) => {\n if (!board) return Event.publish(EVENT.METRICS, { id: 'RATES:META:ERROR' });\n\n if (meta) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_META_RATE_FOUND, {\n utm_source: UTM_SOURCE_NAME[urlParams.utm_source] || urlParams.utm_source,\n }),\n });\n Event.publish(EVENT.METRICS, { id: 'RATES:META:SUCCESS' });\n }\n\n setMetaBoard(board);\n set({ rates: undefined });\n })\n .catch(() => set({ rates: undefined }));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, storeCart]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n !clubRate && setCart([]);\n setRoom(undefined);\n fetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n fetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const checkNotifications = (nextDataSource, nextPromocode) => {\n const { notifications = [] } = nextDataSource;\n\n if (notifications.includes(NOTIFICATION.PROMOCODE_NOT_FOUND) && nextPromocode) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_PROMOCODE_NOT_FOUND, { promocode: nextPromocode }),\n });\n set({ finder: { calendar, occupation, place, promocode: '' } });\n }\n if (notifications.includes(NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_ROOM_NOT_FOUND),\n });\n }\n if (notifications.includes(NOTIFICATION.OFFER_NOT_FOUND) && urlParams.idoffers) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_OFFER_NOT_FOUND),\n });\n }\n };\n\n const fetch = async ({ nextRoom, nextOccupation = occupation, nextPromocode = finder.promocode } = {}) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n\n const params = {\n ...urlParams,\n ...(club.active ? { club, clubDiscount } : undefined),\n id,\n locale,\n maxRooms,\n device,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ roomId } = {}) => roomId).join(','),\n session,\n strictSearch,\n };\n if (nextRoom !== undefined) params.parties = parseToParties([nextOccupation[nextRoom || 0]]);\n\n const lastFetchCall = ++fetchCall;\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (lastFetchCall !== fetchCall) return;\n\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource) {\n checkNotifications(nextDataSource, nextPromocode);\n\n if (nextOccupation?.length > 1 && nextRoom === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n setFetching(false);\n\n if (nextDataSource?.hotels) Event.publish(EVENT.METRICS, { id: 'HOTELS:RENDER' });\n };\n\n return {\n actions: { setCart, setClubRate, setDataSource, setMetaBoard, setRoom, setStrictSearch },\n device,\n multiRoom,\n fetch: debounce(fetch, 60),\n refRoomSelector,\n responseError,\n state: { cart, clubDiscount, clubRate, dataSource, fetching, metaBoard, room, strictSearch },\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useRates.js","names":["_dataSources","require","_locale","_services","_ui","_react","_helpers","_helpers2","_helpers3","_Rates","_Rates2","fetchCall","useRates","isMobile","mobile","useDevice","translate","useLocale","set","value","club","currency","finder","hotel","id","language","locale","rates","cart","storeCart","meta","occupation","maxRooms","urlParams","session","skeleton","useStore","refRoomSelector","useRef","setCart","useState","clubDiscount","setClubDiscount","discount","clubRate","setClubRate","dataSource","setDataSource","fetching","setFetching","metaBoard","setMetaBoard","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","device","multiRoom","length","useEffect","current","offsetHeight","offsetTop","window","scrollTo","top","behavior","undefined","fetch","nextRoom","callback","next","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","tracking","publish","RATES_RESPONSE","error","event","response","getBoard","then","board","METRICS","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","checkNotifications","nextDataSource","nextPromocode","notifications","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","promocode","RATES_FILTER_PROMOCODE","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","nextOccupation","arguments","FINDER","fetchUrlParams","location","search","checkin","nights","parties","getFinderParams","replaceUrlParams","params","active","selectedIds","map","roomId","join","parseToParties","lastFetchCall","ServiceRates","get","externalSignout","signout","hotels","actions","debounce","state","exports"],"sources":["../../../../src/components/Rates/hooks/useRates.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceRates } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { debounce, fetchUrlParams } from '../../../helpers';\nimport { EVENT, parseToParties, replaceUrlParams } from '../../helpers';\nimport { getBoard, getFinderParams, signout } from '../helpers';\nimport { NOTIFICATION, UTM_SOURCE_NAME } from '../Rates.constants';\nimport { L10N } from '../Rates.l10n';\n\nlet fetchCall = 0;\n\nexport const useRates = () => {\n const { isMobile, mobile } = useDevice();\n const { translate } = useLocale();\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n hotel = {},\n id,\n language,\n locale,\n rates: { cart: storeCart = [], meta } = {},\n occupation: { maxRooms } = {},\n urlParams,\n session,\n skeleton = false,\n },\n } = useStore();\n const refRoomSelector = useRef();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [clubRate, setClubRate] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(false);\n const [metaBoard, setMetaBoard] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place } = finder;\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const multiRoom = occupation?.length > 1;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n window.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n room !== undefined && fetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n const callback = async (next) => {\n setClubDiscount(typeof next !== 'object' ? next : undefined);\n clubRate && setClubRate(false);\n };\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubRate]);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n Event.publish(EVENT.RATES_RESPONSE, {\n error: !!responseError,\n event: EVENT.RATES_RESPONSE,\n response: dataSource || responseError,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n useEffect(() => {\n if (!dataSource || !storeCart.length) return;\n\n getBoard({ cart, dataSource, storeCart })\n .then((board) => {\n if (!board) return Event.publish(EVENT.METRICS, { id: 'RATES:META:ERROR' });\n\n if (meta) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_META_RATE_FOUND, {\n utm_source: UTM_SOURCE_NAME[urlParams.utm_source] || urlParams.utm_source,\n }),\n });\n Event.publish(EVENT.METRICS, { id: 'RATES:META:SUCCESS' });\n }\n\n setMetaBoard(board);\n set({ rates: undefined });\n })\n .catch(() => set({ rates: undefined }));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, storeCart]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n !clubRate && setCart([]);\n setRoom(undefined);\n fetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n fetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const checkNotifications = (nextDataSource, nextPromocode) => {\n const { notifications = [] } = nextDataSource;\n\n if (notifications.includes(NOTIFICATION.PROMOCODE_NOT_FOUND) && nextPromocode) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_PROMOCODE_NOT_FOUND, { promocode: nextPromocode }),\n });\n set({ finder: { calendar, occupation, place, promocode: '' } });\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: undefined });\n } else if (nextPromocode !== finder.promocode) {\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: nextPromocode });\n }\n if (notifications.includes(NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_ROOM_NOT_FOUND),\n });\n }\n if (notifications.includes(NOTIFICATION.OFFER_NOT_FOUND) && urlParams.idoffers) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_OFFER_NOT_FOUND),\n });\n }\n };\n\n const fetch = async ({ nextRoom, nextOccupation = occupation, nextPromocode = finder.promocode } = {}) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n\n const params = {\n ...urlParams,\n ...(club.active ? { club, clubDiscount } : undefined),\n id,\n locale,\n maxRooms,\n device,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ roomId } = {}) => roomId).join(','),\n session,\n strictSearch,\n };\n if (nextRoom !== undefined) params.parties = parseToParties([nextOccupation[nextRoom || 0]]);\n\n const lastFetchCall = ++fetchCall;\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (lastFetchCall !== fetchCall) return;\n\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource) {\n checkNotifications(nextDataSource, nextPromocode);\n\n if (nextOccupation?.length > 1 && nextRoom === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n setFetching(false);\n\n if (nextDataSource?.hotels) Event.publish(EVENT.METRICS, { id: 'HOTELS:RENDER' });\n };\n\n return {\n actions: { setCart, setClubRate, setDataSource, setMetaBoard, setRoom, setStrictSearch },\n device,\n multiRoom,\n fetch: debounce(fetch, 60),\n refRoomSelector,\n responseError,\n state: { cart, clubDiscount, clubRate, dataSource, fetching, metaBoard, room, strictSearch },\n };\n};\n"],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ const EVENT = exports.EVENT = {
|
|
|
33
33
|
RATES_ADD_TO_CART: 'ratesAddToCart',
|
|
34
34
|
RATES_RESPONSE: 'ratesResponse',
|
|
35
35
|
RATES_FILTER_CLUB: 'ratesFilterClub',
|
|
36
|
+
RATES_FILTER_PROMOCODE: 'ratesFilterPromocode',
|
|
36
37
|
// -- @mirai/ui
|
|
37
38
|
MODAL_VISIBLE: _ui.MODAL_EVENT_VISIBLE
|
|
38
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["_ui","require","ACCOMMODATION_TYPE","exports","ROOM","APARTMENT","PITCH","ACCOMMODATION","VILLA","CALENDAR_FORMAT","EVENT","BOOKING_RESPONSE","BOOKING_CANCEL","CHECKOUT_RESPONSE","CHECKOUT_FORM","FINDER","FINDER_FIELD_CHANGE","FINDER_READY","FOOTER_HEIGHT_CHANGE","INTENT_CURRENCY","INTENT_LOCALE","LOGGED","LOGIN","METRICS","NOTIFICATION","PAY_LATER","RATES_ADD_TO_CART","RATES_RESPONSE","RATES_FILTER_CLUB","MODAL_VISIBLE","MODAL_EVENT_VISIBLE","LOCALES","MONTHS_IN_MOBILE","OCCUPATION_TYPE","GUEST","ADULT","CHILD","BABY","PAYMENT_CARD","AMERICAN_EXPRESS","DINERS_CLUB","DISCOVER","JCB","MAESTRO","MASTERCARD","UNIONPAY","VISA","PAYMENT_METHOD","ALIPAY","AMAZON_PAY","APLAZAME","BIZUM","CARD","CARD_PREPAY","CRIPTAN","IDEAL","OXXO","PAYLATER","PAYPAL","PCIPROXY","SOFORT","TPV","TRANSFER","WECHATPAY","PAYMENT_PROVIDER","ADDON","ADYEN","CARDNET","CHECKOUT","HIPAY","MULTIPAGOS","REDSYS","REDUNIQ","PAYBOX","PAYCOMET","PAYNOPAIN","SIPAY","STRIPE","PAYMENT_CARD_VALIDATION_PROVIDER","STEP","BOOKING_CANCELLATION","BOOKING_CONFIRMATION","HOTELS","RATES","SUBMIT_DELAY"],"sources":["../../../src/components/helpers/constants.js"],"sourcesContent":["import { MODAL_EVENT_VISIBLE } from '@mirai/ui';\n\nconst ACCOMMODATION_TYPE = {\n ROOM: 1,\n APARTMENT: 2,\n PITCH: 3,\n ACCOMMODATION: 4,\n VILLA: 5,\n};\n\nconst CALENDAR_FORMAT = 'DD/MM/YYYY';\n\nconst EVENT = {\n // -- @mirai/core\n BOOKING_RESPONSE: 'bookingResponse',\n BOOKING_CANCEL: 'bookingCancel',\n CHECKOUT_RESPONSE: 'checkoutResponse',\n CHECKOUT_FORM: 'checkoutForm',\n FINDER: 'finder',\n FINDER_FIELD_CHANGE: 'finderFieldChange',\n FINDER_READY: 'finderReady',\n FOOTER_HEIGHT_CHANGE: 'footerHeightChenge',\n INTENT_CURRENCY: 'intentCurrency',\n INTENT_LOCALE: 'intentLocale',\n LOGGED: 'logged',\n LOGIN: 'login',\n METRICS: 'metrics',\n NOTIFICATION: 'notification',\n PAY_LATER: 'payLater',\n RATES_ADD_TO_CART: 'ratesAddToCart',\n RATES_RESPONSE: 'ratesResponse',\n RATES_FILTER_CLUB: 'ratesFilterClub',\n // -- @mirai/ui\n MODAL_VISIBLE: MODAL_EVENT_VISIBLE,\n};\n\nconst LOCALES = [\n 'en-GB',\n 'es-ES',\n 'fr-FR',\n 'de-DE',\n 'ja-JP',\n 'it-IT',\n 'pt-PT',\n 'da-DK',\n 'fi-FI',\n 'nb-NO',\n 'nl-NL',\n 'pl-PL',\n 'ru-RU',\n 'sv-SE',\n 'tr-TR',\n 'zh-CN',\n 'cs-CZ',\n 'el-GR',\n 'ar-DZ',\n 'hu-HU',\n 'ca-ES',\n 'eu-ES',\n 'vi-VN',\n];\n\nconst MONTHS_IN_MOBILE = 12;\n\nconst OCCUPATION_TYPE = {\n GUEST: 1,\n ADULT: 2,\n CHILD: 3,\n BABY: 4,\n};\n\nconst PAYMENT_CARD = {\n AMERICAN_EXPRESS: 'AMERICAN_EXPRESS',\n DINERS_CLUB: 'DINERS_CLUB',\n DISCOVER: 'DISCOVER',\n JCB: 'JCB',\n MAESTRO: 'MAESTRO', // low resolution logo\n MASTERCARD: 'MASTERCARD',\n UNIONPAY: 'UNIONPAY',\n VISA: 'VISA',\n};\n\nconst PAYMENT_METHOD = {\n ALIPAY: 'ALIPAY',\n AMAZON_PAY: 'AMAZON_PAY',\n APLAZAME: 'APLAZAME',\n BIZUM: 'BIZUM',\n CARD: 'CARD',\n CARD_PREPAY: 'CARD_PREPAY',\n CRIPTAN: 'CRIPTAN',\n IDEAL: 'IDEAL',\n OXXO: 'OXXO',\n PAYLATER: 'PAYLATER',\n PAYPAL: 'PAYPAL',\n PCIPROXY: 'PCIPROXY',\n SOFORT: 'SOFORT',\n TPV: 'TPV',\n TRANSFER: 'TRANSFER',\n WECHATPAY: 'WECHATPAY',\n};\n\nconst PAYMENT_PROVIDER = {\n ADDON: 'ADDON',\n ADYEN: 'ADYEN',\n CARDNET: 'CARDNET',\n CHECKOUT: 'CHECKOUT',\n HIPAY: 'HIPAY',\n MULTIPAGOS: 'MULTIPAGOS',\n REDSYS: 'REDSYS',\n REDUNIQ: 'REDUNIQ',\n PAYBOX: 'PAYBOX',\n PAYCOMET: 'PAYCOMET',\n PAYNOPAIN: 'PAYNOPAIN',\n SIPAY: 'SIPAY',\n STRIPE: 'STRIPE',\n};\n\nconst { ADDON, CHECKOUT, PAYNOPAIN, REDSYS, SIPAY, STRIPE } = PAYMENT_PROVIDER;\n\nconst PAYMENT_CARD_VALIDATION_PROVIDER = [ADDON, CHECKOUT, PAYNOPAIN, REDSYS, SIPAY, STRIPE];\n\nconst STEP = {\n BOOKING_CANCELLATION: 'CANCELLATION',\n BOOKING_CONFIRMATION: 'CONFIRMATION',\n CHECKOUT: 'CLIENTFORM',\n FINDER: 'BOOKINGENTRANCE',\n HOTELS: 'CHAINRESULT',\n RATES: 'BOOKINGSTEP1',\n};\n\nconst SUBMIT_DELAY = 800;\n\nexport {\n ACCOMMODATION_TYPE,\n CALENDAR_FORMAT,\n EVENT,\n LOCALES,\n MONTHS_IN_MOBILE,\n OCCUPATION_TYPE,\n PAYMENT_CARD,\n PAYMENT_CARD_VALIDATION_PROVIDER,\n PAYMENT_METHOD,\n PAYMENT_PROVIDER,\n STEP,\n SUBMIT_DELAY,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAEA,MAAMC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EACzBE,IAAI,EAAE,CAAC;EACPC,SAAS,EAAE,CAAC;EACZC,KAAK,EAAE,CAAC;EACRC,aAAa,EAAE,CAAC;EAChBC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,eAAe,GAAAN,OAAA,CAAAM,eAAA,GAAG,YAAY;AAEpC,MAAMC,KAAK,GAAAP,OAAA,CAAAO,KAAA,GAAG;EACZ;EACAC,gBAAgB,EAAE,iBAAiB;EACnCC,cAAc,EAAE,eAAe;EAC/BC,iBAAiB,EAAE,kBAAkB;EACrCC,aAAa,EAAE,cAAc;EAC7BC,MAAM,EAAE,QAAQ;EAChBC,mBAAmB,EAAE,mBAAmB;EACxCC,YAAY,EAAE,aAAa;EAC3BC,oBAAoB,EAAE,oBAAoB;EAC1CC,eAAe,EAAE,gBAAgB;EACjCC,aAAa,EAAE,cAAc;EAC7BC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClBC,YAAY,EAAE,cAAc;EAC5BC,SAAS,EAAE,UAAU;EACrBC,iBAAiB,EAAE,gBAAgB;EACnCC,cAAc,EAAE,eAAe;EAC/BC,iBAAiB,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"constants.js","names":["_ui","require","ACCOMMODATION_TYPE","exports","ROOM","APARTMENT","PITCH","ACCOMMODATION","VILLA","CALENDAR_FORMAT","EVENT","BOOKING_RESPONSE","BOOKING_CANCEL","CHECKOUT_RESPONSE","CHECKOUT_FORM","FINDER","FINDER_FIELD_CHANGE","FINDER_READY","FOOTER_HEIGHT_CHANGE","INTENT_CURRENCY","INTENT_LOCALE","LOGGED","LOGIN","METRICS","NOTIFICATION","PAY_LATER","RATES_ADD_TO_CART","RATES_RESPONSE","RATES_FILTER_CLUB","RATES_FILTER_PROMOCODE","MODAL_VISIBLE","MODAL_EVENT_VISIBLE","LOCALES","MONTHS_IN_MOBILE","OCCUPATION_TYPE","GUEST","ADULT","CHILD","BABY","PAYMENT_CARD","AMERICAN_EXPRESS","DINERS_CLUB","DISCOVER","JCB","MAESTRO","MASTERCARD","UNIONPAY","VISA","PAYMENT_METHOD","ALIPAY","AMAZON_PAY","APLAZAME","BIZUM","CARD","CARD_PREPAY","CRIPTAN","IDEAL","OXXO","PAYLATER","PAYPAL","PCIPROXY","SOFORT","TPV","TRANSFER","WECHATPAY","PAYMENT_PROVIDER","ADDON","ADYEN","CARDNET","CHECKOUT","HIPAY","MULTIPAGOS","REDSYS","REDUNIQ","PAYBOX","PAYCOMET","PAYNOPAIN","SIPAY","STRIPE","PAYMENT_CARD_VALIDATION_PROVIDER","STEP","BOOKING_CANCELLATION","BOOKING_CONFIRMATION","HOTELS","RATES","SUBMIT_DELAY"],"sources":["../../../src/components/helpers/constants.js"],"sourcesContent":["import { MODAL_EVENT_VISIBLE } from '@mirai/ui';\n\nconst ACCOMMODATION_TYPE = {\n ROOM: 1,\n APARTMENT: 2,\n PITCH: 3,\n ACCOMMODATION: 4,\n VILLA: 5,\n};\n\nconst CALENDAR_FORMAT = 'DD/MM/YYYY';\n\nconst EVENT = {\n // -- @mirai/core\n BOOKING_RESPONSE: 'bookingResponse',\n BOOKING_CANCEL: 'bookingCancel',\n CHECKOUT_RESPONSE: 'checkoutResponse',\n CHECKOUT_FORM: 'checkoutForm',\n FINDER: 'finder',\n FINDER_FIELD_CHANGE: 'finderFieldChange',\n FINDER_READY: 'finderReady',\n FOOTER_HEIGHT_CHANGE: 'footerHeightChenge',\n INTENT_CURRENCY: 'intentCurrency',\n INTENT_LOCALE: 'intentLocale',\n LOGGED: 'logged',\n LOGIN: 'login',\n METRICS: 'metrics',\n NOTIFICATION: 'notification',\n PAY_LATER: 'payLater',\n RATES_ADD_TO_CART: 'ratesAddToCart',\n RATES_RESPONSE: 'ratesResponse',\n RATES_FILTER_CLUB: 'ratesFilterClub',\n RATES_FILTER_PROMOCODE: 'ratesFilterPromocode',\n // -- @mirai/ui\n MODAL_VISIBLE: MODAL_EVENT_VISIBLE,\n};\n\nconst LOCALES = [\n 'en-GB',\n 'es-ES',\n 'fr-FR',\n 'de-DE',\n 'ja-JP',\n 'it-IT',\n 'pt-PT',\n 'da-DK',\n 'fi-FI',\n 'nb-NO',\n 'nl-NL',\n 'pl-PL',\n 'ru-RU',\n 'sv-SE',\n 'tr-TR',\n 'zh-CN',\n 'cs-CZ',\n 'el-GR',\n 'ar-DZ',\n 'hu-HU',\n 'ca-ES',\n 'eu-ES',\n 'vi-VN',\n];\n\nconst MONTHS_IN_MOBILE = 12;\n\nconst OCCUPATION_TYPE = {\n GUEST: 1,\n ADULT: 2,\n CHILD: 3,\n BABY: 4,\n};\n\nconst PAYMENT_CARD = {\n AMERICAN_EXPRESS: 'AMERICAN_EXPRESS',\n DINERS_CLUB: 'DINERS_CLUB',\n DISCOVER: 'DISCOVER',\n JCB: 'JCB',\n MAESTRO: 'MAESTRO', // low resolution logo\n MASTERCARD: 'MASTERCARD',\n UNIONPAY: 'UNIONPAY',\n VISA: 'VISA',\n};\n\nconst PAYMENT_METHOD = {\n ALIPAY: 'ALIPAY',\n AMAZON_PAY: 'AMAZON_PAY',\n APLAZAME: 'APLAZAME',\n BIZUM: 'BIZUM',\n CARD: 'CARD',\n CARD_PREPAY: 'CARD_PREPAY',\n CRIPTAN: 'CRIPTAN',\n IDEAL: 'IDEAL',\n OXXO: 'OXXO',\n PAYLATER: 'PAYLATER',\n PAYPAL: 'PAYPAL',\n PCIPROXY: 'PCIPROXY',\n SOFORT: 'SOFORT',\n TPV: 'TPV',\n TRANSFER: 'TRANSFER',\n WECHATPAY: 'WECHATPAY',\n};\n\nconst PAYMENT_PROVIDER = {\n ADDON: 'ADDON',\n ADYEN: 'ADYEN',\n CARDNET: 'CARDNET',\n CHECKOUT: 'CHECKOUT',\n HIPAY: 'HIPAY',\n MULTIPAGOS: 'MULTIPAGOS',\n REDSYS: 'REDSYS',\n REDUNIQ: 'REDUNIQ',\n PAYBOX: 'PAYBOX',\n PAYCOMET: 'PAYCOMET',\n PAYNOPAIN: 'PAYNOPAIN',\n SIPAY: 'SIPAY',\n STRIPE: 'STRIPE',\n};\n\nconst { ADDON, CHECKOUT, PAYNOPAIN, REDSYS, SIPAY, STRIPE } = PAYMENT_PROVIDER;\n\nconst PAYMENT_CARD_VALIDATION_PROVIDER = [ADDON, CHECKOUT, PAYNOPAIN, REDSYS, SIPAY, STRIPE];\n\nconst STEP = {\n BOOKING_CANCELLATION: 'CANCELLATION',\n BOOKING_CONFIRMATION: 'CONFIRMATION',\n CHECKOUT: 'CLIENTFORM',\n FINDER: 'BOOKINGENTRANCE',\n HOTELS: 'CHAINRESULT',\n RATES: 'BOOKINGSTEP1',\n};\n\nconst SUBMIT_DELAY = 800;\n\nexport {\n ACCOMMODATION_TYPE,\n CALENDAR_FORMAT,\n EVENT,\n LOCALES,\n MONTHS_IN_MOBILE,\n OCCUPATION_TYPE,\n PAYMENT_CARD,\n PAYMENT_CARD_VALIDATION_PROVIDER,\n PAYMENT_METHOD,\n PAYMENT_PROVIDER,\n STEP,\n SUBMIT_DELAY,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAEA,MAAMC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EACzBE,IAAI,EAAE,CAAC;EACPC,SAAS,EAAE,CAAC;EACZC,KAAK,EAAE,CAAC;EACRC,aAAa,EAAE,CAAC;EAChBC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,eAAe,GAAAN,OAAA,CAAAM,eAAA,GAAG,YAAY;AAEpC,MAAMC,KAAK,GAAAP,OAAA,CAAAO,KAAA,GAAG;EACZ;EACAC,gBAAgB,EAAE,iBAAiB;EACnCC,cAAc,EAAE,eAAe;EAC/BC,iBAAiB,EAAE,kBAAkB;EACrCC,aAAa,EAAE,cAAc;EAC7BC,MAAM,EAAE,QAAQ;EAChBC,mBAAmB,EAAE,mBAAmB;EACxCC,YAAY,EAAE,aAAa;EAC3BC,oBAAoB,EAAE,oBAAoB;EAC1CC,eAAe,EAAE,gBAAgB;EACjCC,aAAa,EAAE,cAAc;EAC7BC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClBC,YAAY,EAAE,cAAc;EAC5BC,SAAS,EAAE,UAAU;EACrBC,iBAAiB,EAAE,gBAAgB;EACnCC,cAAc,EAAE,eAAe;EAC/BC,iBAAiB,EAAE,iBAAiB;EACpCC,sBAAsB,EAAE,sBAAsB;EAC9C;EACAC,aAAa,EAAEC;AACjB,CAAC;AAED,MAAMC,OAAO,GAAA7B,OAAA,CAAA6B,OAAA,GAAG,CACd,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,CACR;AAED,MAAMC,gBAAgB,GAAA9B,OAAA,CAAA8B,gBAAA,GAAG,EAAE;AAE3B,MAAMC,eAAe,GAAA/B,OAAA,CAAA+B,eAAA,GAAG;EACtBC,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE,CAAC;EACRC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,YAAY,GAAApC,OAAA,CAAAoC,YAAA,GAAG;EACnBC,gBAAgB,EAAE,kBAAkB;EACpCC,WAAW,EAAE,aAAa;EAC1BC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE,KAAK;EACVC,OAAO,EAAE,SAAS;EAAE;EACpBC,UAAU,EAAE,YAAY;EACxBC,QAAQ,EAAE,UAAU;EACpBC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,cAAc,GAAA7C,OAAA,CAAA6C,cAAA,GAAG;EACrBC,MAAM,EAAE,QAAQ;EAChBC,UAAU,EAAE,YAAY;EACxBC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,WAAW,EAAE,aAAa;EAC1BC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,QAAQ,EAAE,UAAU;EACpBC,MAAM,EAAE,QAAQ;EAChBC,QAAQ,EAAE,UAAU;EACpBC,MAAM,EAAE,QAAQ;EAChBC,GAAG,EAAE,KAAK;EACVC,QAAQ,EAAE,UAAU;EACpBC,SAAS,EAAE;AACb,CAAC;AAED,MAAMC,gBAAgB,GAAA9D,OAAA,CAAA8D,gBAAA,GAAG;EACvBC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,OAAO;EACdC,UAAU,EAAE,YAAY;EACxBC,MAAM,EAAE,QAAQ;EAChBC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,QAAQ,EAAE,UAAU;EACpBC,SAAS,EAAE,WAAW;EACtBC,KAAK,EAAE,OAAO;EACdC,MAAM,EAAE;AACV,CAAC;AAED,MAAM;EAAEZ,KAAK;EAAEG,QAAQ;EAAEO,SAAS;EAAEJ,MAAM;EAAEK,KAAK;EAAEC;AAAO,CAAC,GAAGb,gBAAgB;AAE9E,MAAMc,gCAAgC,GAAA5E,OAAA,CAAA4E,gCAAA,GAAG,CAACb,KAAK,EAAEG,QAAQ,EAAEO,SAAS,EAAEJ,MAAM,EAAEK,KAAK,EAAEC,MAAM,CAAC;AAE5F,MAAME,IAAI,GAAA7E,OAAA,CAAA6E,IAAA,GAAG;EACXC,oBAAoB,EAAE,cAAc;EACpCC,oBAAoB,EAAE,cAAc;EACpCb,QAAQ,EAAE,YAAY;EACtBtD,MAAM,EAAE,iBAAiB;EACzBoE,MAAM,EAAE,aAAa;EACrBC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,YAAY,GAAAlF,OAAA,CAAAkF,YAAA,GAAG,GAAG"}
|