@mirai/core 0.3.326 → 0.3.328
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/README.md +5 -1
- package/build/components/BannerLoyalty/BannerLoyalty.js +22 -8
- package/build/components/BannerLoyalty/BannerLoyalty.js.map +1 -1
- package/build/components/BannerLoyalty/BannerLoyalty.l10n.js +9 -0
- package/build/components/BannerLoyalty/BannerLoyalty.l10n.js.map +1 -1
- package/build/components/Booking/Booking.js +1 -0
- package/build/components/Booking/Booking.js.map +1 -1
- package/build/components/Booking/__tests__/__snapshots__/Booking.test.js.snap +10 -10
- package/build/components/Booking/components/Hotelverse/Hotelverse.js +0 -1
- package/build/components/Booking/components/Hotelverse/Hotelverse.js.map +1 -1
- package/build/components/Booking/partials/Booking.Information.js +0 -1
- package/build/components/Booking/partials/Booking.Information.js.map +1 -1
- package/build/components/Booking/partials/Booking.Payment.js +0 -1
- package/build/components/Booking/partials/Booking.Payment.js.map +1 -1
- package/build/components/Booking/partials/__tests__/__snapshots__/Booking.Details.test.js.snap +8 -8
- package/build/components/Checkout/Checkout.js +0 -1
- package/build/components/Checkout/Checkout.js.map +1 -1
- package/build/components/Checkout/__tests__/__snapshots__/Checkout.test.js.snap +16 -16
- package/build/components/Checkout/helpers/getFieldProps.js +0 -2
- package/build/components/Checkout/helpers/getFieldProps.js.map +1 -1
- package/build/components/Deals/Deals.js +4 -5
- package/build/components/Deals/Deals.js.map +1 -1
- package/build/components/Deals/Deals.module.css +0 -9
- package/build/components/Deals/__tests__/__snapshots__/Deals.test.js.snap +40 -20
- package/build/components/Finder/Finder.compact.js +2 -2
- package/build/components/Finder/Finder.compact.js.map +1 -1
- package/build/components/Finder/Finder.module.css +2 -1
- package/build/components/Finder/__tests__/__snapshots__/Finder.test.js.snap +126 -56
- package/build/components/Profile/components/Bookings/Bookings.js +2 -3
- package/build/components/Profile/components/Bookings/Bookings.js.map +1 -1
- package/build/components/Profile/components/Settings/Settings.Signout.js +2 -1
- package/build/components/Profile/components/Settings/Settings.Signout.js.map +1 -1
- package/build/components/Rates/Rates.Header.js +8 -100
- package/build/components/Rates/Rates.Header.js.map +1 -1
- package/build/components/Rates/Rates.RoomSelector.js +1 -1
- package/build/components/Rates/Rates.RoomSelector.js.map +1 -1
- package/build/components/Rates/Rates.Unavailability.js +0 -2
- package/build/components/Rates/Rates.Unavailability.js.map +1 -1
- package/build/components/Rates/Rates.constants.js +8 -2
- package/build/components/Rates/Rates.constants.js.map +1 -1
- package/build/components/Rates/Rates.js +65 -23
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/Rates.l10n.js +3 -30
- package/build/components/Rates/Rates.l10n.js.map +1 -1
- package/build/components/Rates/Rates.module.css +22 -63
- package/build/components/Rates/components/CardHotel/CardHotel.js +0 -1
- package/build/components/Rates/components/CardHotel/CardHotel.js.map +1 -1
- package/build/components/Rates/components/ClubRate/ClubRate.js +7 -4
- package/build/components/Rates/components/ClubRate/ClubRate.js.map +1 -1
- package/build/components/Rates/components/Filters/Filters.Amenity.js +33 -0
- package/build/components/Rates/components/Filters/Filters.Amenity.js.map +1 -0
- package/build/components/Rates/components/Filters/Filters.BookingOption.js +50 -0
- package/build/components/Rates/components/Filters/Filters.BookingOption.js.map +1 -0
- package/build/components/Rates/components/Filters/Filters.Button.js +47 -0
- package/build/components/Rates/components/Filters/Filters.Button.js.map +1 -0
- package/build/components/Rates/components/Filters/Filters.constants.js +36 -0
- package/build/components/Rates/components/Filters/Filters.constants.js.map +1 -0
- package/build/components/Rates/components/Filters/Filters.js +370 -0
- package/build/components/Rates/components/Filters/Filters.js.map +1 -0
- package/build/components/Rates/components/Filters/Filters.l10n.js +78 -0
- package/build/components/Rates/components/Filters/Filters.l10n.js.map +1 -0
- package/build/components/Rates/components/Filters/Filters.module.css +107 -0
- package/build/components/Rates/components/Filters/components/InputRange/InputRange.js +132 -0
- package/build/components/Rates/components/Filters/components/InputRange/InputRange.js.map +1 -0
- package/build/components/Rates/components/Filters/components/InputRange/InputRange.l10n.js +15 -0
- package/build/components/Rates/components/Filters/components/InputRange/InputRange.l10n.js.map +1 -0
- package/build/components/Rates/components/Filters/components/InputRange/InputRange.module.css +95 -0
- package/build/components/Rates/components/Filters/components/InputRange/helpers/getHistogram.js +50 -0
- package/build/components/Rates/components/Filters/components/InputRange/helpers/getHistogram.js.map +1 -0
- package/build/components/Rates/components/Filters/components/InputRange/helpers/index.js +17 -0
- package/build/components/Rates/components/Filters/components/InputRange/helpers/index.js.map +1 -0
- package/build/components/Rates/components/Filters/components/InputRange/index.js +17 -0
- package/build/components/Rates/components/Filters/components/InputRange/index.js.map +1 -0
- package/build/components/Rates/components/Filters/components/index.js +17 -0
- package/build/components/Rates/components/Filters/components/index.js.map +1 -0
- package/build/components/Rates/components/Filters/helpers/countFilters.js +17 -0
- package/build/components/Rates/components/Filters/helpers/countFilters.js.map +1 -0
- package/build/components/Rates/components/Filters/helpers/getAvailableFilters.js +113 -0
- package/build/components/Rates/components/Filters/helpers/getAvailableFilters.js.map +1 -0
- package/build/components/Rates/components/Filters/helpers/getStrictSearch.js +16 -0
- package/build/components/Rates/components/Filters/helpers/getStrictSearch.js.map +1 -0
- package/build/components/Rates/components/Filters/helpers/index.js +27 -0
- package/build/components/Rates/components/Filters/helpers/index.js.map +1 -0
- package/build/components/Rates/components/Filters/index.js +17 -0
- package/build/components/Rates/components/Filters/index.js.map +1 -0
- package/build/components/Rates/components/Hotelverse/Hotelverse.js +6 -15
- package/build/components/Rates/components/Hotelverse/Hotelverse.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Preview.js +2 -2
- package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Rates.js +2 -2
- package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
- package/build/components/Rates/components/Item/Item.js +17 -9
- package/build/components/Rates/components/Item/Item.js.map +1 -1
- package/build/components/Rates/components/Item/Item.module.css +1 -1
- package/build/components/Rates/components/Item/components/Features/Features.js +1 -2
- package/build/components/Rates/components/Item/components/Features/Features.js.map +1 -1
- package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +2 -1
- package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
- package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.module.css +3 -0
- package/build/components/Rates/components/Item/components/Option/Option.js +7 -1
- package/build/components/Rates/components/Item/components/Option/Option.js.map +1 -1
- package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js +1 -1
- package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js.map +1 -1
- package/build/components/Rates/components/Item/components/RateDetails/RateDetails.js +2 -2
- package/build/components/Rates/components/Item/components/RateDetails/RateDetails.js.map +1 -1
- package/build/components/Rates/components/Item/components/TooltipDates/TooltipDates.js +1 -4
- package/build/components/Rates/components/Item/components/TooltipDates/TooltipDates.js.map +1 -1
- package/build/components/Rates/components/ModalExtras/ModalExtras.module.css +2 -1
- package/build/components/Rates/components/ModalMapView/ModalMapView.js +1 -1
- package/build/components/Rates/components/ModalMapView/ModalMapView.js.map +1 -1
- package/build/components/Rates/components/index.js +11 -0
- package/build/components/Rates/components/index.js.map +1 -1
- package/build/components/Rates/helpers/fetchRates.js +62 -0
- package/build/components/Rates/helpers/fetchRates.js.map +1 -0
- package/build/components/Rates/helpers/filterItem.js +95 -0
- package/build/components/Rates/helpers/filterItem.js.map +1 -0
- package/build/components/Rates/helpers/index.js +33 -0
- package/build/components/Rates/helpers/index.js.map +1 -1
- package/build/components/Rates/helpers/select.js +57 -0
- package/build/components/Rates/helpers/select.js.map +1 -0
- package/build/components/Session/Session.Login.Modal.js +8 -8
- package/build/components/Session/Session.Login.Modal.js.map +1 -1
- package/build/components/Session/Session.module.css +6 -1
- package/build/components/Session/__tests__/__snapshots__/Session.test.js.snap +12 -12
- package/build/components/__shared__/BookingSummary/BookingSummary.js +4 -4
- package/build/components/__shared__/BookingSummary/BookingSummary.js.map +1 -1
- package/build/components/__shared__/BookingTerms/BookingTerms.js +0 -2
- package/build/components/__shared__/BookingTerms/BookingTerms.js.map +1 -1
- package/build/components/__shared__/BookingTerms/__tests__/__snapshots__/BookingTerms.test.js.snap +4 -4
- package/build/components/__shared__/ButtonMore/ButtonMore.js +4 -3
- package/build/components/__shared__/ButtonMore/ButtonMore.js.map +1 -1
- package/build/components/__shared__/ButtonMore/__tests__/__snapshots__/ButtonMore.test.js.snap +6 -6
- package/build/components/__shared__/FieldOccupation/__tests__/__snapshots__/FieldOccupation.test.js.snap +36 -36
- package/build/components/__shared__/FieldPromocode/FieldPromocode.constants.js +8 -0
- package/build/components/__shared__/FieldPromocode/FieldPromocode.constants.js.map +1 -0
- package/build/components/__shared__/FieldPromocode/FieldPromocode.js +12 -4
- package/build/components/__shared__/FieldPromocode/FieldPromocode.js.map +1 -1
- package/build/components/__shared__/FieldPromocode/FieldPromocode.l10n.js +5 -1
- package/build/components/__shared__/FieldPromocode/FieldPromocode.l10n.js.map +1 -1
- package/build/components/__shared__/FieldPromocode/FieldPromocode.module.css +1 -1
- package/build/components/__shared__/FieldPromocode/__tests__/__snapshots__/FieldPromocode.test.jsx.snap +20 -0
- package/build/components/__shared__/Footer/Footer.js +0 -3
- package/build/components/__shared__/Footer/Footer.js.map +1 -1
- package/build/components/__shared__/Footer/__tests__/__snapshots__/Footer.test.js.snap +8 -8
- package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.js +0 -1
- package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.js.map +1 -1
- package/build/components/__shared__/Occupation/Occupation.js +0 -1
- package/build/components/__shared__/Occupation/Occupation.js.map +1 -1
- package/build/components/__shared__/Occupation/__tests__/__snapshots__/Occupation.test.js.snap +66 -66
- package/build/components/helpers/ICON.js +2 -0
- package/build/components/helpers/ICON.js.map +1 -1
- package/build/components/helpers/__tests__/__snapshots__/parseHtml.test.js.snap +4 -4
- package/build/components/helpers/constants.js +1 -0
- package/build/components/helpers/constants.js.map +1 -1
- package/build/helpers/consolidateStore.js +1 -1
- package/build/helpers/consolidateStore.js.map +1 -1
- package/package.json +1 -1
- package/public/App.Container.jsx +2 -7
- package/public/themes/monalisa.theme.css +10 -3
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Filters = void 0;
|
|
7
|
+
var _dataSources = require("@mirai/data-sources");
|
|
8
|
+
var _locale = require("@mirai/locale");
|
|
9
|
+
var _ui = require("@mirai/ui");
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _components = require("./components");
|
|
13
|
+
var _Filters = require("./Filters.Amenity");
|
|
14
|
+
var _Filters2 = require("./Filters.BookingOption");
|
|
15
|
+
var _Filters3 = require("./Filters.Button");
|
|
16
|
+
var _Filters4 = require("./Filters.constants");
|
|
17
|
+
var _Filters5 = require("./Filters.l10n");
|
|
18
|
+
var style = _interopRequireWildcard(require("./Filters.module.css"));
|
|
19
|
+
var _helpers = require("./helpers");
|
|
20
|
+
var _helpers2 = require("../../../helpers");
|
|
21
|
+
var _helpers3 = require("../../helpers");
|
|
22
|
+
var _components2 = require("../Item/components");
|
|
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
|
+
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
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
|
+
let memoizeForm;
|
|
27
|
+
const Filters = _ref => {
|
|
28
|
+
let {
|
|
29
|
+
clubConditions,
|
|
30
|
+
items = [],
|
|
31
|
+
onSubmit = () => {},
|
|
32
|
+
...others
|
|
33
|
+
} = _ref;
|
|
34
|
+
const {
|
|
35
|
+
isMobile
|
|
36
|
+
} = (0, _ui.useDevice)();
|
|
37
|
+
const {
|
|
38
|
+
translate
|
|
39
|
+
} = (0, _locale.useLocale)();
|
|
40
|
+
const {
|
|
41
|
+
value: {
|
|
42
|
+
currency,
|
|
43
|
+
club = {},
|
|
44
|
+
finder = {},
|
|
45
|
+
hotel,
|
|
46
|
+
id,
|
|
47
|
+
locale,
|
|
48
|
+
occupation: {
|
|
49
|
+
maxRooms
|
|
50
|
+
} = {},
|
|
51
|
+
session,
|
|
52
|
+
urlParams: {
|
|
53
|
+
idoffers,
|
|
54
|
+
roomTypeId
|
|
55
|
+
}
|
|
56
|
+
} = {}
|
|
57
|
+
} = (0, _dataSources.useStore)();
|
|
58
|
+
const {
|
|
59
|
+
discount
|
|
60
|
+
} = club;
|
|
61
|
+
const {
|
|
62
|
+
promocode
|
|
63
|
+
} = finder;
|
|
64
|
+
const [allAmenities, setAllAmenities] = (0, _react.useState)(false);
|
|
65
|
+
const [busy, setBusy] = (0, _react.useState)(false);
|
|
66
|
+
const [counter, setCounter] = (0, _react.useState)(0);
|
|
67
|
+
const [filters, setFilters] = (0, _react.useState)((0, _helpers.getAvailableFilters)(items));
|
|
68
|
+
const [form, setForm] = (0, _react.useState)(_Filters4.DEFAULT_FORM);
|
|
69
|
+
const [visible, setVisible] = (0, _react.useState)(false);
|
|
70
|
+
(0, _react.useEffect)(() => {
|
|
71
|
+
const nextForm = memoizeForm || {
|
|
72
|
+
..._Filters4.DEFAULT_FORM,
|
|
73
|
+
clubDiscount: !session && discount !== undefined ? !!discount : undefined,
|
|
74
|
+
offer: idoffers ? !!idoffers : undefined,
|
|
75
|
+
promocode: promocode ? !!promocode : undefined,
|
|
76
|
+
roomType: roomTypeId ? !!roomTypeId : undefined
|
|
77
|
+
};
|
|
78
|
+
setForm(nextForm);
|
|
79
|
+
setCounter((0, _helpers.countFilters)(nextForm));
|
|
80
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
81
|
+
}, []);
|
|
82
|
+
(0, _react.useEffect)(() => {
|
|
83
|
+
if (!form.priceRange) return;
|
|
84
|
+
const nextForm = {
|
|
85
|
+
...form,
|
|
86
|
+
priceRange: undefined
|
|
87
|
+
};
|
|
88
|
+
setForm(nextForm);
|
|
89
|
+
setCounter((0, _helpers.countFilters)(nextForm));
|
|
90
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
91
|
+
}, [currency]);
|
|
92
|
+
(0, _react.useEffect)(() => {
|
|
93
|
+
const callback = clubDiscount => {
|
|
94
|
+
const nextForm = {
|
|
95
|
+
...form,
|
|
96
|
+
clubDiscount
|
|
97
|
+
};
|
|
98
|
+
setForm(nextForm);
|
|
99
|
+
setCounter((0, _helpers.countFilters)(nextForm));
|
|
100
|
+
};
|
|
101
|
+
_dataSources.Event.subscribe(_helpers2.EVENT.RATES_FILTER_CLUB, callback);
|
|
102
|
+
return () => _dataSources.Event.unsubscribe(_helpers2.EVENT.RATES_FILTER_CLUB, callback);
|
|
103
|
+
}, [form]);
|
|
104
|
+
(0, _react.useEffect)(() => {
|
|
105
|
+
const nextFilters = (0, _helpers.getAvailableFilters)(items);
|
|
106
|
+
if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);
|
|
107
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
108
|
+
}, [items]);
|
|
109
|
+
const handleAmenity = (id, value) => setForm({
|
|
110
|
+
...form,
|
|
111
|
+
amenities: value ? [...form.amenities, id] : form.amenities.filter(item => item !== id)
|
|
112
|
+
});
|
|
113
|
+
const handleOption = (field, id) => setForm({
|
|
114
|
+
...form,
|
|
115
|
+
[field]: form[field] === id ? undefined : id
|
|
116
|
+
});
|
|
117
|
+
const handleBookingOption = async (field, value) => {
|
|
118
|
+
const next = {
|
|
119
|
+
...form,
|
|
120
|
+
[field]: value
|
|
121
|
+
};
|
|
122
|
+
setForm(next);
|
|
123
|
+
if (field !== 'freeCancellation') {
|
|
124
|
+
setBusy(true);
|
|
125
|
+
const {
|
|
126
|
+
clubDiscount
|
|
127
|
+
} = next;
|
|
128
|
+
const strictSearch = (0, _helpers.getStrictSearch)(next);
|
|
129
|
+
const cart = []; // ! TODO: [MF-2006] Store should get the current cart of <Rates>
|
|
130
|
+
const params = {
|
|
131
|
+
cart,
|
|
132
|
+
club,
|
|
133
|
+
clubDiscount,
|
|
134
|
+
finder,
|
|
135
|
+
hotel,
|
|
136
|
+
id,
|
|
137
|
+
locale,
|
|
138
|
+
maxRooms,
|
|
139
|
+
session,
|
|
140
|
+
strictSearch
|
|
141
|
+
};
|
|
142
|
+
const {
|
|
143
|
+
items: nextItems
|
|
144
|
+
} = (await (0, _helpers3.fetchRates)(params).catch(() => {})) || {};
|
|
145
|
+
if (nextItems) setFilters((0, _helpers.getAvailableFilters)(nextItems));
|
|
146
|
+
setBusy(false);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
const handleClearAll = () => {
|
|
150
|
+
setAllAmenities(false);
|
|
151
|
+
setForm(_Filters4.DEFAULT_FORM);
|
|
152
|
+
};
|
|
153
|
+
const handleSubmit = () => {
|
|
154
|
+
memoizeForm = form;
|
|
155
|
+
setVisible(false);
|
|
156
|
+
setCounter((0, _helpers.countFilters)(form));
|
|
157
|
+
onSubmit({
|
|
158
|
+
...form,
|
|
159
|
+
strictSearch: (0, _helpers.getStrictSearch)(form)
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
const has = {
|
|
163
|
+
clubDiscount: (discount || clubConditions !== undefined) && !session,
|
|
164
|
+
freeCancellation: true || !!filters.freeCancellation,
|
|
165
|
+
// * We'll activate freeCancellation filter always.
|
|
166
|
+
offer: !!idoffers,
|
|
167
|
+
promocode: !!promocode,
|
|
168
|
+
roomType: !!roomTypeId
|
|
169
|
+
};
|
|
170
|
+
const filteredItems = (0, _helpers3.select)(items, form).filter(function () {
|
|
171
|
+
let {
|
|
172
|
+
availability = 0
|
|
173
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
174
|
+
return availability > 0;
|
|
175
|
+
});
|
|
176
|
+
const {
|
|
177
|
+
length: boardsLength
|
|
178
|
+
} = filters.boards;
|
|
179
|
+
const inlineBoards = !isMobile || isMobile && boardsLength <= _Filters4.MAX_BOARDS - 1;
|
|
180
|
+
const {
|
|
181
|
+
name: roomTypeName
|
|
182
|
+
} = items.find(function () {
|
|
183
|
+
let {
|
|
184
|
+
id
|
|
185
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
186
|
+
return id === parseInt(roomTypeId);
|
|
187
|
+
}) || {};
|
|
188
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Filters3.Button, {
|
|
189
|
+
counter,
|
|
190
|
+
onPress: () => setVisible(true)
|
|
191
|
+
}), /*#__PURE__*/_react.default.createElement(_ui.Modal, {
|
|
192
|
+
fit: true,
|
|
193
|
+
portal: true,
|
|
194
|
+
title: translate(_Filters5.L10N.LABEL_FILTERS),
|
|
195
|
+
visible: visible,
|
|
196
|
+
onClose: () => setVisible(false),
|
|
197
|
+
className: [style.modal, others.className]
|
|
198
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.ScrollView, {
|
|
199
|
+
scrollTo: 0,
|
|
200
|
+
snap: false,
|
|
201
|
+
className: style.scrollView
|
|
202
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
203
|
+
className: style.section
|
|
204
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
205
|
+
bold: true,
|
|
206
|
+
headline: true
|
|
207
|
+
}, translate(_Filters5.L10N.LABEL_BOOKING_OPTIONS)), has.clubDiscount && /*#__PURE__*/_react.default.createElement(_Filters2.BookingOption, {
|
|
208
|
+
caption: clubConditions ? translate(_Filters5.L10N.LABEL_CLUB_CONDITIONS, {
|
|
209
|
+
conditions: /*#__PURE__*/_react.default.createElement(_ui.Action, {
|
|
210
|
+
small: true,
|
|
211
|
+
href: clubConditions,
|
|
212
|
+
target: "_blank",
|
|
213
|
+
className: style.textInline
|
|
214
|
+
}, translate(_Filters5.L10N.ACTION_CLUB_VIEW_CONDITIONS))
|
|
215
|
+
}) : translate(_Filters5.L10N.LABEL_CLUB_BENEFITS),
|
|
216
|
+
checked: form.clubDiscount,
|
|
217
|
+
club: club.name,
|
|
218
|
+
field: "clubDiscount",
|
|
219
|
+
title: _Filters5.L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE,
|
|
220
|
+
onChange: handleBookingOption
|
|
221
|
+
}), _Filters4.BOOKING_OPTIONS.filter(function () {
|
|
222
|
+
let {
|
|
223
|
+
field
|
|
224
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
225
|
+
return has[field];
|
|
226
|
+
}).map(function () {
|
|
227
|
+
let {
|
|
228
|
+
field,
|
|
229
|
+
title
|
|
230
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
231
|
+
return /*#__PURE__*/_react.default.createElement(_Filters2.BookingOption, {
|
|
232
|
+
key: field,
|
|
233
|
+
checked: form[field],
|
|
234
|
+
field,
|
|
235
|
+
title,
|
|
236
|
+
roomName: roomTypeName,
|
|
237
|
+
promocode: promocode === null || promocode === void 0 ? void 0 : promocode.toUpperCase(),
|
|
238
|
+
onChange: handleBookingOption
|
|
239
|
+
});
|
|
240
|
+
})), boardsLength > 1 && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
241
|
+
className: style.section
|
|
242
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
243
|
+
bold: true,
|
|
244
|
+
headline: true
|
|
245
|
+
}, translate(_Filters5.L10N.LABEL_ACCOMMODATION_PLAN)), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
246
|
+
row: inlineBoards,
|
|
247
|
+
className: (0, _ui.styles)(style.boards, inlineBoards && style.inline)
|
|
248
|
+
}, filters.boards.map(_ref2 => {
|
|
249
|
+
let {
|
|
250
|
+
id,
|
|
251
|
+
text
|
|
252
|
+
} = _ref2;
|
|
253
|
+
return /*#__PURE__*/_react.default.createElement(_components2.Option, {
|
|
254
|
+
checked: form.board === text,
|
|
255
|
+
key: "board:".concat(id),
|
|
256
|
+
inline: inlineBoards,
|
|
257
|
+
outlined: true,
|
|
258
|
+
title: text,
|
|
259
|
+
onPress: () => handleOption('board', text),
|
|
260
|
+
className: style.option
|
|
261
|
+
});
|
|
262
|
+
}))), filters.prices.length > 1 && /*#__PURE__*/_react.default.createElement(_components.InputRange, {
|
|
263
|
+
caption: translate(_Filters5.L10N.LABEL_SET_PRICE_RANGE),
|
|
264
|
+
dataSource: filters.prices,
|
|
265
|
+
resolution: isMobile ? 12 : 24,
|
|
266
|
+
title: translate(_Filters5.L10N.LABEL_PRICE_RANGE),
|
|
267
|
+
unit: (0, _locale.currencySymbol)(currency, {
|
|
268
|
+
locale
|
|
269
|
+
}),
|
|
270
|
+
value: form.priceRange,
|
|
271
|
+
onChange: priceRange => setForm({
|
|
272
|
+
...form,
|
|
273
|
+
priceRange
|
|
274
|
+
}),
|
|
275
|
+
className: style.section
|
|
276
|
+
}), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
277
|
+
className: style.section
|
|
278
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
279
|
+
bold: true,
|
|
280
|
+
headline: true,
|
|
281
|
+
wide: true
|
|
282
|
+
}, translate(_Filters5.L10N.LABEL_AMENITIES)), /*#__PURE__*/_react.default.createElement(_ui.View, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
283
|
+
row: true,
|
|
284
|
+
className: style.amenities
|
|
285
|
+
}, filters.amenities.filter(item => item.highlight).map(_ref3 => {
|
|
286
|
+
let {
|
|
287
|
+
id,
|
|
288
|
+
text
|
|
289
|
+
} = _ref3;
|
|
290
|
+
return /*#__PURE__*/_react.default.createElement(_Filters.Amenity, {
|
|
291
|
+
checked: form.amenities.includes(id),
|
|
292
|
+
id: id,
|
|
293
|
+
key: id,
|
|
294
|
+
label: text,
|
|
295
|
+
onChange: handleAmenity
|
|
296
|
+
});
|
|
297
|
+
})), allAmenities ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
298
|
+
action: true,
|
|
299
|
+
bold: true,
|
|
300
|
+
wide: true,
|
|
301
|
+
className: style.textOthers
|
|
302
|
+
}, translate(_Filters5.L10N.LABEL_OTHERS)), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
303
|
+
row: true,
|
|
304
|
+
className: style.amenities
|
|
305
|
+
}, filters.amenities.filter(item => !item.highlight).map(_ref4 => {
|
|
306
|
+
let {
|
|
307
|
+
id,
|
|
308
|
+
text
|
|
309
|
+
} = _ref4;
|
|
310
|
+
return /*#__PURE__*/_react.default.createElement(_Filters.Amenity, {
|
|
311
|
+
checked: form.amenities.includes(id),
|
|
312
|
+
id: id,
|
|
313
|
+
key: id,
|
|
314
|
+
label: text,
|
|
315
|
+
onChange: handleAmenity
|
|
316
|
+
});
|
|
317
|
+
}))) : /*#__PURE__*/_react.default.createElement(_ui.Action, {
|
|
318
|
+
underline: true,
|
|
319
|
+
onPress: () => setAllAmenities(true)
|
|
320
|
+
}, translate(_Filters5.L10N.ACTION_VIEW_MORE)))), filters.bedTypes.length > 1 && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
321
|
+
className: style.section
|
|
322
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
323
|
+
bold: true,
|
|
324
|
+
headline: true,
|
|
325
|
+
wide: true
|
|
326
|
+
}, translate(_Filters5.L10N.LABEL_BED_TYPE)), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
327
|
+
row: true
|
|
328
|
+
}, filters.bedTypes.map(bedType => /*#__PURE__*/_react.default.createElement(_components2.Option, {
|
|
329
|
+
key: "bedType:".concat(bedType),
|
|
330
|
+
checked: form.bedType === bedType,
|
|
331
|
+
icon: bedType === 1 ? _helpers2.ICON.BED_SINGLE : _helpers2.ICON.BED_DOUBLE,
|
|
332
|
+
inline: true,
|
|
333
|
+
outlined: true,
|
|
334
|
+
title: translate(bedType === 1 ? _Filters5.L10N.LABEL_BED_TYPE_SINGLE : _Filters5.L10N.LABEL_BED_TYPE_DOUBLE),
|
|
335
|
+
onPress: () => handleOption('bedType', bedType),
|
|
336
|
+
className: style.option
|
|
337
|
+
})))), filters.sizes.length > 1 && /*#__PURE__*/_react.default.createElement(_components.InputRange, {
|
|
338
|
+
dataSource: filters.sizes,
|
|
339
|
+
resolution: isMobile ? 4 : 6,
|
|
340
|
+
title: translate(_Filters5.L10N.LABEL_ROOM_SIZE),
|
|
341
|
+
unit: filters.sizeUnit,
|
|
342
|
+
value: form.sizeRange,
|
|
343
|
+
onChange: sizeRange => setForm({
|
|
344
|
+
...form,
|
|
345
|
+
sizeRange
|
|
346
|
+
}),
|
|
347
|
+
className: style.section
|
|
348
|
+
})), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
349
|
+
row: true,
|
|
350
|
+
className: [style.footer, style.spaceBetween]
|
|
351
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Button, {
|
|
352
|
+
transparent: true,
|
|
353
|
+
onPress: handleClearAll
|
|
354
|
+
}, translate(_Filters5.L10N.ACTION_CLEAR_ALL)), /*#__PURE__*/_react.default.createElement(_ui.Button, {
|
|
355
|
+
busy: busy,
|
|
356
|
+
disabled: !filteredItems.length,
|
|
357
|
+
onPress: handleSubmit
|
|
358
|
+
}, translate(filteredItems.length ? _Filters5.L10N.LABEL_SHOW_COUNT_RESULTS : _Filters5.L10N.LABEL_NO_EXACT_MATCHES, {
|
|
359
|
+
count: filteredItems.length
|
|
360
|
+
})))));
|
|
361
|
+
};
|
|
362
|
+
exports.Filters = Filters;
|
|
363
|
+
Filters.displayName = 'Mirai:Core:Rates:Filters';
|
|
364
|
+
Filters.propTypes = {
|
|
365
|
+
clubDiscount: _propTypes.default.bool,
|
|
366
|
+
clubConditions: _propTypes.default.string,
|
|
367
|
+
items: _propTypes.default.arrayOf(_propTypes.default.shape({})),
|
|
368
|
+
onSubmit: _propTypes.default.func
|
|
369
|
+
};
|
|
370
|
+
//# sourceMappingURL=Filters.js.map
|
|
@@ -0,0 +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","Filters","_ref","clubConditions","items","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","visible","setVisible","useEffect","nextForm","clubDiscount","undefined","offer","roomType","countFilters","priceRange","callback","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","nextFilters","JSON","stringify","handleAmenity","amenities","filter","item","handleOption","field","handleBookingOption","next","strictSearch","getStrictSearch","cart","params","nextItems","fetchRates","catch","handleClearAll","handleSubmit","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","scrollTo","snap","scrollView","View","section","Text","bold","headline","LABEL_BOOKING_OPTIONS","BookingOption","caption","LABEL_CLUB_CONDITIONS","conditions","Action","small","href","target","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","Option","board","concat","outlined","option","prices","InputRange","LABEL_SET_PRICE_RANGE","dataSource","resolution","LABEL_PRICE_RANGE","unit","currencySymbol","wide","LABEL_AMENITIES","highlight","_ref3","Amenity","includes","label","action","textOthers","LABEL_OTHERS","_ref4","underline","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","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 } from '../../../helpers';\nimport { fetchRates, select } from '../../helpers';\nimport { Option } from '../Item/components';\n\nlet memoizeForm;\n\nconst Filters = ({ clubConditions, items = [], 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(items));\n const [form, setForm] = useState(DEFAULT_FORM);\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) return;\n const nextForm = { ...form, priceRange: undefined };\n\n setForm(nextForm);\n setCounter(countFilters(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 const nextFilters = getAvailableFilters(items);\n if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items]);\n\n const handleAmenity = (id, value) =>\n setForm({ ...form, amenities: value ? [...form.amenities, id] : form.amenities.filter((item) => item !== id) });\n\n const handleOption = (field, id) => setForm({ ...form, [field]: form[field] === id ? undefined : id });\n\n const handleBookingOption = async (field, value) => {\n const next = { ...form, [field]: value };\n setForm(next);\n\n if (field !== 'freeCancellation') {\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\n if (nextItems) setFilters(getAvailableFilters(nextItems));\n\n setBusy(false);\n }\n };\n\n const handleClearAll = () => {\n setAllAmenities(false);\n setForm(DEFAULT_FORM);\n };\n\n const handleSubmit = () => {\n memoizeForm = form;\n setVisible(false);\n setCounter(countFilters(form));\n onSubmit({ ...form, strictSearch: getStrictSearch(form) });\n };\n\n const has = {\n clubDiscount: (discount || 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).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={() => setVisible(true)} />\n\n <Modal\n fit\n portal\n title={translate(L10N.LABEL_FILTERS)}\n visible={visible}\n onClose={() => setVisible(false)}\n className={[style.modal, others.className]}\n >\n <ScrollView scrollTo={0} 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 small href={clubConditions} target=\"_blank\" 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={handleBookingOption}\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 }) => (\n <Option\n checked={form.board === text}\n key={`board:${id}`}\n inline={inlineBoards}\n outlined\n title={text}\n onPress={() => handleOption('board', text)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.prices.length > 1 && (\n <InputRange\n caption={translate(L10N.LABEL_SET_PRICE_RANGE)}\n dataSource={filters.prices}\n resolution={isMobile ? 12 : 24}\n title={translate(L10N.LABEL_PRICE_RANGE)}\n unit={currencySymbol(currency, { locale })}\n value={form.priceRange}\n onChange={(priceRange) => setForm({ ...form, priceRange })}\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 underline onPress={() => setAllAmenities(true)}>\n {translate(L10N.ACTION_VIEW_MORE)}\n </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={(sizeRange) => setForm({ ...form, sizeRange })}\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 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;AAEf,MAAMC,OAAO,GAAGC,IAAA,IAAoE;EAAA,IAAnE;IAAEC,cAAc;IAAEC,KAAK,GAAG,EAAE;IAAEC,QAAQ,GAAGA,CAAA,KAAM,CAAC,CAAC;IAAE,GAAGC;EAAO,CAAC,GAAAJ,IAAA;EAC7E,MAAM;IAAEK;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;IACpC,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,EAAChC,KAAK,CAAC,CAAC;EAClE,MAAM,CAACiC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAT,eAAQ,EAACU,sBAAY,CAAC;EAC9C,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAZ,eAAQ,EAAC,KAAK,CAAC;EAE7C,IAAAa,gBAAS,EAAC,MAAM;IACd,MAAMC,QAAQ,GAAG3C,WAAW,IAAI;MAC9B,GAAGuC,sBAAY;MACfK,YAAY,EAAE,CAACxB,OAAO,IAAIK,QAAQ,KAAKoB,SAAS,GAAG,CAAC,CAACpB,QAAQ,GAAGoB,SAAS;MACzEC,KAAK,EAAExB,QAAQ,GAAG,CAAC,CAACA,QAAQ,GAAGuB,SAAS;MACxCnB,SAAS,EAAEA,SAAS,GAAG,CAAC,CAACA,SAAS,GAAGmB,SAAS;MAC9CE,QAAQ,EAAExB,UAAU,GAAG,CAAC,CAACA,UAAU,GAAGsB;IACxC,CAAC;IAEDP,OAAO,CAACK,QAAQ,CAAC;IACjBV,UAAU,CAAC,IAAAe,qBAAY,EAACL,QAAQ,CAAC,CAAC;IAClC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAD,gBAAS,EAAC,MAAM;IACd,IAAI,CAACL,IAAI,CAACY,UAAU,EAAE;IACtB,MAAMN,QAAQ,GAAG;MAAE,GAAGN,IAAI;MAAEY,UAAU,EAAEJ;IAAU,CAAC;IAEnDP,OAAO,CAACK,QAAQ,CAAC;IACjBV,UAAU,CAAC,IAAAe,qBAAY,EAACL,QAAQ,CAAC,CAAC;IAClC;EACF,CAAC,EAAE,CAAC/B,QAAQ,CAAC,CAAC;EAEd,IAAA8B,gBAAS,EAAC,MAAM;IACd,MAAMQ,QAAQ,GAAIN,YAAY,IAAK;MACjC,MAAMD,QAAQ,GAAG;QAAE,GAAGN,IAAI;QAAEO;MAAa,CAAC;MAC1CN,OAAO,CAACK,QAAQ,CAAC;MACjBV,UAAU,CAAC,IAAAe,qBAAY,EAACL,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEDQ,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,CAACb,IAAI,CAAC,CAAC;EAEV,IAAAK,gBAAS,EAAC,MAAM;IACd,MAAMc,WAAW,GAAG,IAAApB,4BAAmB,EAAChC,KAAK,CAAC;IAC9C,IAAIqD,IAAI,CAACC,SAAS,CAACF,WAAW,CAAC,KAAKC,IAAI,CAACC,SAAS,CAACxB,OAAO,CAAC,EAAEC,UAAU,CAACqB,WAAW,CAAC;IACpF;EACF,CAAC,EAAE,CAACpD,KAAK,CAAC,CAAC;EAEX,MAAMuD,aAAa,GAAGA,CAAC3C,EAAE,EAAEL,KAAK,KAC9B2B,OAAO,CAAC;IAAE,GAAGD,IAAI;IAAEuB,SAAS,EAAEjD,KAAK,GAAG,CAAC,GAAG0B,IAAI,CAACuB,SAAS,EAAE5C,EAAE,CAAC,GAAGqB,IAAI,CAACuB,SAAS,CAACC,MAAM,CAAEC,IAAI,IAAKA,IAAI,KAAK9C,EAAE;EAAE,CAAC,CAAC;EAEjH,MAAM+C,YAAY,GAAGA,CAACC,KAAK,EAAEhD,EAAE,KAAKsB,OAAO,CAAC;IAAE,GAAGD,IAAI;IAAE,CAAC2B,KAAK,GAAG3B,IAAI,CAAC2B,KAAK,CAAC,KAAKhD,EAAE,GAAG6B,SAAS,GAAG7B;EAAG,CAAC,CAAC;EAEtG,MAAMiD,mBAAmB,GAAG,MAAAA,CAAOD,KAAK,EAAErD,KAAK,KAAK;IAClD,MAAMuD,IAAI,GAAG;MAAE,GAAG7B,IAAI;MAAE,CAAC2B,KAAK,GAAGrD;IAAM,CAAC;IACxC2B,OAAO,CAAC4B,IAAI,CAAC;IAEb,IAAIF,KAAK,KAAK,kBAAkB,EAAE;MAChCjC,OAAO,CAAC,IAAI,CAAC;MAEb,MAAM;QAAEa;MAAa,CAAC,GAAGsB,IAAI;MAC7B,MAAMC,YAAY,GAAG,IAAAC,wBAAe,EAACF,IAAI,CAAC;MAC1C,MAAMG,IAAI,GAAG,EAAE,CAAC,CAAC;MACjB,MAAMC,MAAM,GAAG;QAAED,IAAI;QAAExD,IAAI;QAAE+B,YAAY;QAAE9B,MAAM;QAAEC,KAAK;QAAEC,EAAE;QAAEC,MAAM;QAAEE,QAAQ;QAAEC,OAAO;QAAE+C;MAAa,CAAC;MACvG,MAAM;QAAE/D,KAAK,EAAEmE;MAAU,CAAC,GAAG,CAAC,MAAM,IAAAC,oBAAU,EAACF,MAAM,CAAC,CAACG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;MAE7E,IAAIF,SAAS,EAAEpC,UAAU,CAAC,IAAAC,4BAAmB,EAACmC,SAAS,CAAC,CAAC;MAEzDxC,OAAO,CAAC,KAAK,CAAC;IAChB;EACF,CAAC;EAED,MAAM2C,cAAc,GAAGA,CAAA,KAAM;IAC3B9C,eAAe,CAAC,KAAK,CAAC;IACtBU,OAAO,CAACC,sBAAY,CAAC;EACvB,CAAC;EAED,MAAMoC,YAAY,GAAGA,CAAA,KAAM;IACzB3E,WAAW,GAAGqC,IAAI;IAClBI,UAAU,CAAC,KAAK,CAAC;IACjBR,UAAU,CAAC,IAAAe,qBAAY,EAACX,IAAI,CAAC,CAAC;IAC9BhC,QAAQ,CAAC;MAAE,GAAGgC,IAAI;MAAE8B,YAAY,EAAE,IAAAC,wBAAe,EAAC/B,IAAI;IAAE,CAAC,CAAC;EAC5D,CAAC;EAED,MAAMpD,GAAG,GAAG;IACV2D,YAAY,EAAE,CAACnB,QAAQ,IAAItB,cAAc,KAAK0C,SAAS,KAAK,CAACzB,OAAO;IACpEwD,gBAAgB,EAAE,IAAI,IAAI,CAAC,CAAC1C,OAAO,CAAC0C,gBAAgB;IAAE;IACtD9B,KAAK,EAAE,CAAC,CAACxB,QAAQ;IACjBI,SAAS,EAAE,CAAC,CAACA,SAAS;IACtBqB,QAAQ,EAAE,CAAC,CAACxB;EACd,CAAC;EAED,MAAMsD,aAAa,GAAG,IAAAC,gBAAM,EAAC1E,KAAK,EAAEiC,IAAI,CAAC,CAACwB,MAAM,CAAC;IAAA,IAAC;MAAEkB,YAAY,GAAG;IAAE,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAnC,SAAA,GAAAmC,SAAA,MAAG,CAAC,CAAC;IAAA,OAAKD,YAAY,GAAG,CAAC;EAAA,EAAC;EACjG,MAAM;IAAEE,MAAM,EAAEC;EAAa,CAAC,GAAGhD,OAAO,CAACiD,MAAM;EAC/C,MAAMC,YAAY,GAAG,CAAC7E,QAAQ,IAAKA,QAAQ,IAAI2E,YAAY,IAAIG,oBAAU,GAAG,CAAE;EAC9E,MAAM;IAAEC,IAAI,EAAEC;EAAa,CAAC,GAAGnF,KAAK,CAACoF,IAAI,CAAC;IAAA,IAAC;MAAExE;IAAG,CAAC,GAAAgE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAnC,SAAA,GAAAmC,SAAA,MAAG,CAAC,CAAC;IAAA,OAAKhE,EAAE,KAAKyE,QAAQ,CAAClE,UAAU,CAAC;EAAA,EAAC,IAAI,CAAC,CAAC;EAE7F,oBACE1D,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAA7H,MAAA,CAAAmB,OAAA,CAAA2G,QAAA,qBACE9H,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAACxH,SAAA,CAAA0H,MAAa;IAAO5D,OAAO;IAAI6D,OAAO,EAAEA,CAAA,KAAMpD,UAAU,CAAC,IAAI;EAAE,CAAE,CAAC,eAEnE5E,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAoI,KAAK;IACJC,GAAG;IACHC,MAAM;IACNC,KAAK,EAAExF,SAAS,CAACyF,cAAI,CAACC,aAAa,CAAE;IACrC3D,OAAO,EAAEA,OAAQ;IACjB4D,OAAO,EAAEA,CAAA,KAAM3D,UAAU,CAAC,KAAK,CAAE;IACjC4D,SAAS,EAAE,CAAChI,KAAK,CAACiI,KAAK,EAAEhG,MAAM,CAAC+F,SAAS;EAAE,gBAE3CxI,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAA6I,UAAU;IAACC,QAAQ,EAAE,CAAE;IAACC,IAAI,EAAE,KAAM;IAACJ,SAAS,EAAEhI,KAAK,CAACqI;EAAW,gBAChE7I,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAiJ,IAAI;IAACN,SAAS,EAAEhI,KAAK,CAACuI;EAAQ,gBAC7B/I,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAmJ,IAAI;IAACC,IAAI;IAACC,QAAQ;EAAA,GAChBtG,SAAS,CAACyF,cAAI,CAACc,qBAAqB,CACjC,CAAC,EAEN/H,GAAG,CAAC2D,YAAY,iBACf/E,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAACzH,SAAA,CAAAgJ,aAAa;IACZC,OAAO,EACL/G,cAAc,GACVM,SAAS,CAACyF,cAAI,CAACiB,qBAAqB,EAAE;MACpCC,UAAU,eACRvJ,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAA2J,MAAM;QAACC,KAAK;QAACC,IAAI,EAAEpH,cAAe;QAACqH,MAAM,EAAC,QAAQ;QAACnB,SAAS,EAAEhI,KAAK,CAACoJ;MAAW,GAC7EhH,SAAS,CAACyF,cAAI,CAACwB,2BAA2B,CACrC;IAEZ,CAAC,CAAC,GACFjH,SAAS,CAACyF,cAAI,CAACyB,mBAAmB,CACvC;IACDC,OAAO,EAAEvF,IAAI,CAACO,YAAa;IAC3B/B,IAAI,EAAEA,IAAI,CAACyE,IAAK;IAChBtB,KAAK,EAAC,cAAc;IACpBiC,KAAK,EAAEC,cAAI,CAAC2B,4BAA6B;IACzCC,QAAQ,EAAE7D;EAAoB,CAC/B,CACF,EAEA8D,yBAAe,CAAClE,MAAM,CAAC;IAAA,IAAC;MAAEG;IAAM,CAAC,GAAAgB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAnC,SAAA,GAAAmC,SAAA,MAAG,CAAC,CAAC;IAAA,OAAK/F,GAAG,CAAC+E,KAAK,CAAC;EAAA,EAAC,CAACgE,GAAG,CAAC;IAAA,IAAC;MAAEhE,KAAK;MAAEiC;IAAM,CAAC,GAAAjB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAnC,SAAA,GAAAmC,SAAA,MAAG,CAAC,CAAC;IAAA,oBAChFnH,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAACzH,SAAA,CAAAgJ,aAAa;MACZgB,GAAG,EAAEjE,KAAM;MACX4D,OAAO,EAAEvF,IAAI,CAAC2B,KAAK,CAAE;MACfA,KAAK;MAAEiC,KAAK;MAAEiC,QAAQ,EAAE3C,YAAY;MAAE7D,SAAS,EAAEA,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEyG,WAAW,CAAC,CAAC;MAC/EL,QAAQ,EAAE7D;IAAoB,CAC/B,CAAC;EAAA,CACH,CACG,CAAC,EAENiB,YAAY,GAAG,CAAC,iBACfrH,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAiJ,IAAI;IAACN,SAAS,EAAEhI,KAAK,CAACuI;EAAQ,gBAC7B/I,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAmJ,IAAI;IAACC,IAAI;IAACC,QAAQ;EAAA,GAChBtG,SAAS,CAACyF,cAAI,CAACkC,wBAAwB,CACpC,CAAC,eAEPvK,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAiJ,IAAI;IAAC0B,GAAG,EAAEjD,YAAa;IAACiB,SAAS,EAAE,IAAAiC,UAAM,EAACjK,KAAK,CAAC8G,MAAM,EAAEC,YAAY,IAAI/G,KAAK,CAACkK,MAAM;EAAE,GACpFrG,OAAO,CAACiD,MAAM,CAAC6C,GAAG,CAACQ,KAAA;IAAA,IAAC;MAAExH,EAAE;MAAEyH;IAAK,CAAC,GAAAD,KAAA;IAAA,oBAC/B3K,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAACjH,YAAA,CAAAiK,MAAM;MACLd,OAAO,EAAEvF,IAAI,CAACsG,KAAK,KAAKF,IAAK;MAC7BR,GAAG,WAAAW,MAAA,CAAW5H,EAAE,CAAG;MACnBuH,MAAM,EAAEnD,YAAa;MACrByD,QAAQ;MACR5C,KAAK,EAAEwC,IAAK;MACZ5C,OAAO,EAAEA,CAAA,KAAM9B,YAAY,CAAC,OAAO,EAAE0E,IAAI,CAAE;MAC3CpC,SAAS,EAAEhI,KAAK,CAACyK;IAAO,CACzB,CAAC;EAAA,CACH,CACG,CACF,CACP,EAEA5G,OAAO,CAAC6G,MAAM,CAAC9D,MAAM,GAAG,CAAC,iBACxBpH,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAC3H,WAAA,CAAAiL,UAAU;IACT9B,OAAO,EAAEzG,SAAS,CAACyF,cAAI,CAAC+C,qBAAqB,CAAE;IAC/CC,UAAU,EAAEhH,OAAO,CAAC6G,MAAO;IAC3BI,UAAU,EAAE5I,QAAQ,GAAG,EAAE,GAAG,EAAG;IAC/B0F,KAAK,EAAExF,SAAS,CAACyF,cAAI,CAACkD,iBAAiB,CAAE;IACzCC,IAAI,EAAE,IAAAC,sBAAc,EAAC1I,QAAQ,EAAE;MAAEK;IAAO,CAAC,CAAE;IAC3CN,KAAK,EAAE0B,IAAI,CAACY,UAAW;IACvB6E,QAAQ,EAAG7E,UAAU,IAAKX,OAAO,CAAC;MAAE,GAAGD,IAAI;MAAEY;IAAW,CAAC,CAAE;IAC3DoD,SAAS,EAAEhI,KAAK,CAACuI;EAAQ,CAC1B,CACF,eAED/I,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAiJ,IAAI;IAACN,SAAS,EAAEhI,KAAK,CAACuI;EAAQ,gBAC7B/I,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAmJ,IAAI;IAACC,IAAI;IAACC,QAAQ;IAACwC,IAAI;EAAA,GACrB9I,SAAS,CAACyF,cAAI,CAACsD,eAAe,CAC3B,CAAC,eAEP3L,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAiJ,IAAI,qBACH9I,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAiJ,IAAI;IAAC0B,GAAG;IAAChC,SAAS,EAAEhI,KAAK,CAACuF;EAAU,GAClC1B,OAAO,CAAC0B,SAAS,CACfC,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAAC2F,SAAS,CAAC,CAChCzB,GAAG,CAAC0B,KAAA;IAAA,IAAC;MAAE1I,EAAE;MAAEyH;IAAK,CAAC,GAAAiB,KAAA;IAAA,oBAChB7L,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAC1H,QAAA,CAAA2L,OAAO;MACN/B,OAAO,EAAEvF,IAAI,CAACuB,SAAS,CAACgG,QAAQ,CAAC5I,EAAE,CAAE;MACrCA,EAAE,EAAEA,EAAG;MACPiH,GAAG,EAAEjH,EAAG;MACR6I,KAAK,EAAEpB,IAAK;MACZX,QAAQ,EAAEnE;IAAc,CACzB,CAAC;EAAA,CACH,CACC,CAAC,EAENhC,YAAY,gBACX9D,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAA7H,MAAA,CAAAmB,OAAA,CAAA2G,QAAA,qBACE9H,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAmJ,IAAI;IAACiD,MAAM;IAAChD,IAAI;IAACyC,IAAI;IAAClD,SAAS,EAAEhI,KAAK,CAAC0L;EAAW,GAChDtJ,SAAS,CAACyF,cAAI,CAAC8D,YAAY,CACxB,CAAC,eAEPnM,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAiJ,IAAI;IAAC0B,GAAG;IAAChC,SAAS,EAAEhI,KAAK,CAACuF;EAAU,GAClC1B,OAAO,CAAC0B,SAAS,CACfC,MAAM,CAAEC,IAAI,IAAK,CAACA,IAAI,CAAC2F,SAAS,CAAC,CACjCzB,GAAG,CAACiC,KAAA;IAAA,IAAC;MAAEjJ,EAAE;MAAEyH;IAAK,CAAC,GAAAwB,KAAA;IAAA,oBAChBpM,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAC1H,QAAA,CAAA2L,OAAO;MACN/B,OAAO,EAAEvF,IAAI,CAACuB,SAAS,CAACgG,QAAQ,CAAC5I,EAAE,CAAE;MACrCA,EAAE,EAAEA,EAAG;MACPiH,GAAG,EAAEjH,EAAG;MACR6I,KAAK,EAAEpB,IAAK;MACZX,QAAQ,EAAEnE;IAAc,CACzB,CAAC;EAAA,CACH,CACC,CACN,CAAC,gBAEH9F,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAA2J,MAAM;IAAC6C,SAAS;IAACrE,OAAO,EAAEA,CAAA,KAAMjE,eAAe,CAAC,IAAI;EAAE,GACpDnB,SAAS,CAACyF,cAAI,CAACiE,gBAAgB,CAC1B,CAEN,CACF,CAAC,EAENjI,OAAO,CAACkI,QAAQ,CAACnF,MAAM,GAAG,CAAC,iBAC1BpH,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAiJ,IAAI;IAACN,SAAS,EAAEhI,KAAK,CAACuI;EAAQ,gBAC7B/I,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAmJ,IAAI;IAACC,IAAI;IAACC,QAAQ;IAACwC,IAAI;EAAA,GACrB9I,SAAS,CAACyF,cAAI,CAACmE,cAAc,CAC1B,CAAC,eAEPxM,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAiJ,IAAI;IAAC0B,GAAG;EAAA,GACNnG,OAAO,CAACkI,QAAQ,CAACpC,GAAG,CAAEsC,OAAO,iBAC5BzM,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAACjH,YAAA,CAAAiK,MAAM;IACLT,GAAG,aAAAW,MAAA,CAAa0B,OAAO,CAAG;IAC1B1C,OAAO,EAAEvF,IAAI,CAACiI,OAAO,KAAKA,OAAQ;IAClCC,IAAI,EAAED,OAAO,KAAK,CAAC,GAAGE,cAAI,CAACC,UAAU,GAAGD,cAAI,CAACE,UAAW;IACxDnC,MAAM;IACNM,QAAQ;IACR5C,KAAK,EAAExF,SAAS,CAAC6J,OAAO,KAAK,CAAC,GAAGpE,cAAI,CAACyE,qBAAqB,GAAGzE,cAAI,CAAC0E,qBAAqB,CAAE;IAC1F/E,OAAO,EAAEA,CAAA,KAAM9B,YAAY,CAAC,SAAS,EAAEuG,OAAO,CAAE;IAChDjE,SAAS,EAAEhI,KAAK,CAACyK;EAAO,CACzB,CACF,CACG,CACF,CACP,EAEA5G,OAAO,CAAC2I,KAAK,CAAC5F,MAAM,GAAG,CAAC,iBACvBpH,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAC3H,WAAA,CAAAiL,UAAU;IACTE,UAAU,EAAEhH,OAAO,CAAC2I,KAAM;IAC1B1B,UAAU,EAAE5I,QAAQ,GAAG,CAAC,GAAG,CAAE;IAC7B0F,KAAK,EAAExF,SAAS,CAACyF,cAAI,CAAC4E,eAAe,CAAE;IACvCzB,IAAI,EAAEnH,OAAO,CAAC6I,QAAS;IACvBpK,KAAK,EAAE0B,IAAI,CAAC2I,SAAU;IACtBlD,QAAQ,EAAGkD,SAAS,IAAK1I,OAAO,CAAC;MAAE,GAAGD,IAAI;MAAE2I;IAAU,CAAC,CAAE;IACzD3E,SAAS,EAAEhI,KAAK,CAACuI;EAAQ,CAC1B,CAEO,CAAC,eAEb/I,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAiJ,IAAI;IAAC0B,GAAG;IAAChC,SAAS,EAAE,CAAChI,KAAK,CAAC4M,MAAM,EAAE5M,KAAK,CAAC6M,YAAY;EAAE,gBACtDrN,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAkI,MAAM;IAACuF,WAAW;IAACtF,OAAO,EAAEnB;EAAe,GACzCjE,SAAS,CAACyF,cAAI,CAACkF,gBAAgB,CAC1B,CAAC,eACTvN,MAAA,CAAAmB,OAAA,CAAA0G,aAAA,CAAChI,GAAA,CAAAkI,MAAM;IAAC9D,IAAI,EAAEA,IAAK;IAACuJ,QAAQ,EAAE,CAACxG,aAAa,CAACI,MAAO;IAACY,OAAO,EAAElB;EAAa,GACxElE,SAAS,CAACoE,aAAa,CAACI,MAAM,GAAGiB,cAAI,CAACoF,wBAAwB,GAAGpF,cAAI,CAACqF,sBAAsB,EAAE;IAC7FC,KAAK,EAAE3G,aAAa,CAACI;EACvB,CAAC,CACK,CACJ,CACD,CACP,CAAC;AAEP,CAAC;AAACwG,OAAA,CAAAxL,OAAA,GAAAA,OAAA;AAEFA,OAAO,CAACyL,WAAW,GAAG,0BAA0B;AAEhDzL,OAAO,CAAC0L,SAAS,GAAG;EAClB/I,YAAY,EAAEgJ,kBAAS,CAACC,IAAI;EAC5B1L,cAAc,EAAEyL,kBAAS,CAACE,MAAM;EAChC1L,KAAK,EAAEwL,kBAAS,CAACG,OAAO,CAACH,kBAAS,CAACI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EAC7C3L,QAAQ,EAAEuL,kBAAS,CAACK;AACtB,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.L10N = void 0;
|
|
7
|
+
const L10N = exports.L10N = {
|
|
8
|
+
ACTION_CLEAR_ALL: {
|
|
9
|
+
id: 'common.action.clear_all'
|
|
10
|
+
},
|
|
11
|
+
ACTION_CLUB_VIEW_CONDITIONS: {
|
|
12
|
+
id: 'finder.action.club_view_conditions'
|
|
13
|
+
},
|
|
14
|
+
ACTION_VIEW_MORE: {
|
|
15
|
+
id: 'common.action.view_more'
|
|
16
|
+
},
|
|
17
|
+
LABEL_ACCOMMODATION_PLAN: {
|
|
18
|
+
id: 'finder.label.accommodation_plan'
|
|
19
|
+
},
|
|
20
|
+
LABEL_AMENITIES: {
|
|
21
|
+
id: 'finder.label.amenities'
|
|
22
|
+
},
|
|
23
|
+
LABEL_BED_TYPE: {
|
|
24
|
+
id: 'finder.label.bed_type'
|
|
25
|
+
},
|
|
26
|
+
LABEL_BED_TYPE_DOUBLE: {
|
|
27
|
+
id: 'finder.label.bed_type_double'
|
|
28
|
+
},
|
|
29
|
+
LABEL_BED_TYPE_SINGLE: {
|
|
30
|
+
id: 'finder.label.bed_type_single'
|
|
31
|
+
},
|
|
32
|
+
LABEL_BOOKING_OPTIONS: {
|
|
33
|
+
id: 'finder.label.booking_options'
|
|
34
|
+
},
|
|
35
|
+
LABEL_CLUB_MEMBERS_EXCLUSIVE: {
|
|
36
|
+
id: 'finder.label.club_members_exclusive'
|
|
37
|
+
},
|
|
38
|
+
LABEL_CLUB_BENEFITS: {
|
|
39
|
+
id: 'finder.label.club_benefits'
|
|
40
|
+
},
|
|
41
|
+
LABEL_CLUB_CONDITIONS: {
|
|
42
|
+
id: 'finder.label.club_conditions'
|
|
43
|
+
},
|
|
44
|
+
LABEL_FREE_CANCELLATION: {
|
|
45
|
+
id: 'finder.label.free_cancellation'
|
|
46
|
+
},
|
|
47
|
+
LABEL_FILTERS: {
|
|
48
|
+
id: 'common.label.filters'
|
|
49
|
+
},
|
|
50
|
+
LABEL_NO_EXACT_MATCHES: {
|
|
51
|
+
id: 'finder.label.no_exact_matches'
|
|
52
|
+
},
|
|
53
|
+
LABEL_OTHERS: {
|
|
54
|
+
id: 'common.label.others'
|
|
55
|
+
},
|
|
56
|
+
LABEL_PRICE_RANGE: {
|
|
57
|
+
id: 'finder.label.price_range'
|
|
58
|
+
},
|
|
59
|
+
LABEL_ROOM_SIZE: {
|
|
60
|
+
id: 'common.label.room_size'
|
|
61
|
+
},
|
|
62
|
+
LABEL_SET_PRICE_RANGE: {
|
|
63
|
+
id: 'finder.label.set_price_range'
|
|
64
|
+
},
|
|
65
|
+
LABEL_SHOW_COUNT_RESULTS: {
|
|
66
|
+
id: 'finder.label.show_count_results'
|
|
67
|
+
},
|
|
68
|
+
LABEL_SHOW_ONLY_DEALS: {
|
|
69
|
+
id: 'common.label.show_only_deals'
|
|
70
|
+
},
|
|
71
|
+
LABEL_SHOW_ONLY_PROMOTION: {
|
|
72
|
+
id: 'common.label.show_only_promotion'
|
|
73
|
+
},
|
|
74
|
+
LABEL_SHOW_ONLY_ROOM: {
|
|
75
|
+
id: 'common.label.show_only_room'
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=Filters.l10n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Filters.l10n.js","names":["L10N","exports","ACTION_CLEAR_ALL","id","ACTION_CLUB_VIEW_CONDITIONS","ACTION_VIEW_MORE","LABEL_ACCOMMODATION_PLAN","LABEL_AMENITIES","LABEL_BED_TYPE","LABEL_BED_TYPE_DOUBLE","LABEL_BED_TYPE_SINGLE","LABEL_BOOKING_OPTIONS","LABEL_CLUB_MEMBERS_EXCLUSIVE","LABEL_CLUB_BENEFITS","LABEL_CLUB_CONDITIONS","LABEL_FREE_CANCELLATION","LABEL_FILTERS","LABEL_NO_EXACT_MATCHES","LABEL_OTHERS","LABEL_PRICE_RANGE","LABEL_ROOM_SIZE","LABEL_SET_PRICE_RANGE","LABEL_SHOW_COUNT_RESULTS","LABEL_SHOW_ONLY_DEALS","LABEL_SHOW_ONLY_PROMOTION","LABEL_SHOW_ONLY_ROOM"],"sources":["../../../../../src/components/Rates/components/Filters/Filters.l10n.js"],"sourcesContent":["export const L10N = {\n ACTION_CLEAR_ALL: { id: 'common.action.clear_all' },\n ACTION_CLUB_VIEW_CONDITIONS: { id: 'finder.action.club_view_conditions' },\n ACTION_VIEW_MORE: { id: 'common.action.view_more' },\n\n LABEL_ACCOMMODATION_PLAN: { id: 'finder.label.accommodation_plan' },\n LABEL_AMENITIES: { id: 'finder.label.amenities' },\n LABEL_BED_TYPE: { id: 'finder.label.bed_type' },\n LABEL_BED_TYPE_DOUBLE: { id: 'finder.label.bed_type_double' },\n LABEL_BED_TYPE_SINGLE: { id: 'finder.label.bed_type_single' },\n LABEL_BOOKING_OPTIONS: { id: 'finder.label.booking_options' },\n LABEL_CLUB_MEMBERS_EXCLUSIVE: { id: 'finder.label.club_members_exclusive' },\n LABEL_CLUB_BENEFITS: { id: 'finder.label.club_benefits' },\n LABEL_CLUB_CONDITIONS: { id: 'finder.label.club_conditions' },\n LABEL_FREE_CANCELLATION: { id: 'finder.label.free_cancellation' },\n LABEL_FILTERS: { id: 'common.label.filters' },\n LABEL_NO_EXACT_MATCHES: { id: 'finder.label.no_exact_matches' },\n LABEL_OTHERS: { id: 'common.label.others' },\n LABEL_PRICE_RANGE: { id: 'finder.label.price_range' },\n LABEL_ROOM_SIZE: { id: 'common.label.room_size' },\n LABEL_SET_PRICE_RANGE: { id: 'finder.label.set_price_range' },\n LABEL_SHOW_COUNT_RESULTS: { id: 'finder.label.show_count_results' },\n LABEL_SHOW_ONLY_DEALS: { id: 'common.label.show_only_deals' },\n LABEL_SHOW_ONLY_PROMOTION: { id: 'common.label.show_only_promotion' },\n LABEL_SHOW_ONLY_ROOM: { id: 'common.label.show_only_room' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,gBAAgB,EAAE;IAAEC,EAAE,EAAE;EAA0B,CAAC;EACnDC,2BAA2B,EAAE;IAAED,EAAE,EAAE;EAAqC,CAAC;EACzEE,gBAAgB,EAAE;IAAEF,EAAE,EAAE;EAA0B,CAAC;EAEnDG,wBAAwB,EAAE;IAAEH,EAAE,EAAE;EAAkC,CAAC;EACnEI,eAAe,EAAE;IAAEJ,EAAE,EAAE;EAAyB,CAAC;EACjDK,cAAc,EAAE;IAAEL,EAAE,EAAE;EAAwB,CAAC;EAC/CM,qBAAqB,EAAE;IAAEN,EAAE,EAAE;EAA+B,CAAC;EAC7DO,qBAAqB,EAAE;IAAEP,EAAE,EAAE;EAA+B,CAAC;EAC7DQ,qBAAqB,EAAE;IAAER,EAAE,EAAE;EAA+B,CAAC;EAC7DS,4BAA4B,EAAE;IAAET,EAAE,EAAE;EAAsC,CAAC;EAC3EU,mBAAmB,EAAE;IAAEV,EAAE,EAAE;EAA6B,CAAC;EACzDW,qBAAqB,EAAE;IAAEX,EAAE,EAAE;EAA+B,CAAC;EAC7DY,uBAAuB,EAAE;IAAEZ,EAAE,EAAE;EAAiC,CAAC;EACjEa,aAAa,EAAE;IAAEb,EAAE,EAAE;EAAuB,CAAC;EAC7Cc,sBAAsB,EAAE;IAAEd,EAAE,EAAE;EAAgC,CAAC;EAC/De,YAAY,EAAE;IAAEf,EAAE,EAAE;EAAsB,CAAC;EAC3CgB,iBAAiB,EAAE;IAAEhB,EAAE,EAAE;EAA2B,CAAC;EACrDiB,eAAe,EAAE;IAAEjB,EAAE,EAAE;EAAyB,CAAC;EACjDkB,qBAAqB,EAAE;IAAElB,EAAE,EAAE;EAA+B,CAAC;EAC7DmB,wBAAwB,EAAE;IAAEnB,EAAE,EAAE;EAAkC,CAAC;EACnEoB,qBAAqB,EAAE;IAAEpB,EAAE,EAAE;EAA+B,CAAC;EAC7DqB,yBAAyB,EAAE;IAAErB,EAAE,EAAE;EAAmC,CAAC;EACrEsB,oBAAoB,EAAE;IAAEtB,EAAE,EAAE;EAA8B;AAC5D,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
.button {
|
|
2
|
+
gap: var(--mirai-ui-space-XXS);
|
|
3
|
+
overflow: visible !important;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.button .counter {
|
|
7
|
+
background-color: var(--mirai-ui-accent);
|
|
8
|
+
border: solid var(--mirai-ui-border-width) var(--mirai-ui-base);
|
|
9
|
+
color: var(--mirai-ui-base);
|
|
10
|
+
height: var(--mirai-ui-space-S);
|
|
11
|
+
width: var(--mirai-ui-space-S);
|
|
12
|
+
line-height: var(--mirai-ui-space-S);
|
|
13
|
+
text-align: center;
|
|
14
|
+
border-radius: 50%;
|
|
15
|
+
position: absolute;
|
|
16
|
+
top: calc(var(--mirai-ui-space-S) * -0.5);
|
|
17
|
+
padding: var(--mirai-ui-space-XXS);
|
|
18
|
+
right: calc(var(--mirai-ui-space-S) * -0.5);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.scrollView {
|
|
22
|
+
padding: 0 var(--mirai-ui-space-M);
|
|
23
|
+
max-width: calc(100% - calc(var(--mirai-ui-space-M) * 2));
|
|
24
|
+
width: 100%;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.section {
|
|
28
|
+
gap: var(--mirai-ui-space-M);
|
|
29
|
+
padding: var(--mirai-ui-space-L) 0;
|
|
30
|
+
width: 100%;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.section:not(:last-child) {
|
|
34
|
+
border-bottom: solid var(--mirai-ui-border-width) var(--mirai-ui-content-border);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.section .boards {
|
|
38
|
+
align-items: stretch;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.section .boards:not(.inline) {
|
|
42
|
+
gap: var(--mirai-ui-space-XS);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.section .amenities {
|
|
46
|
+
flex-wrap: wrap;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.section .textOthers + .amenities {
|
|
50
|
+
margin-top: var(--mirai-ui-space-M);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.section [data-role='input-option'] [data-role='text'] {
|
|
54
|
+
overflow: hidden;
|
|
55
|
+
text-overflow: ellipsis;
|
|
56
|
+
white-space: nowrap;
|
|
57
|
+
max-width: 90%;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.textInline {
|
|
61
|
+
display: inline;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.spaceBetween {
|
|
65
|
+
gap: var(--mirai-ui-space-M);
|
|
66
|
+
justify-content: space-between;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.footer {
|
|
70
|
+
border-top: solid var(--mirai-ui-border-width) var(--mirai-ui-content-border);
|
|
71
|
+
padding: var(--mirai-ui-space-M);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* S */
|
|
75
|
+
@media only screen and (max-width: 480px) {
|
|
76
|
+
.modal {
|
|
77
|
+
max-height: 100svh;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.section [data-role='input-option'] {
|
|
81
|
+
width: 90%;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* M & L */
|
|
86
|
+
@media only screen and (min-width: 481px) {
|
|
87
|
+
.button:hover .counter {
|
|
88
|
+
background-color: var(--mirai-ui-accent-dark);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.modal {
|
|
92
|
+
max-height: 90svh;
|
|
93
|
+
width: 768px;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.section .amenities [data-role='input-option'] {
|
|
97
|
+
max-width: 49%;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.section .amenities > :nth-child(odd) {
|
|
101
|
+
margin-right: 2%;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.section .boards.inline .option {
|
|
105
|
+
padding: var(--mirai-ui-space-L) var(--mirai-ui-space-M);
|
|
106
|
+
}
|
|
107
|
+
}
|