@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.
Files changed (159) hide show
  1. package/README.md +5 -1
  2. package/build/components/BannerLoyalty/BannerLoyalty.js +22 -8
  3. package/build/components/BannerLoyalty/BannerLoyalty.js.map +1 -1
  4. package/build/components/BannerLoyalty/BannerLoyalty.l10n.js +9 -0
  5. package/build/components/BannerLoyalty/BannerLoyalty.l10n.js.map +1 -1
  6. package/build/components/Booking/Booking.js +1 -0
  7. package/build/components/Booking/Booking.js.map +1 -1
  8. package/build/components/Booking/__tests__/__snapshots__/Booking.test.js.snap +10 -10
  9. package/build/components/Booking/components/Hotelverse/Hotelverse.js +0 -1
  10. package/build/components/Booking/components/Hotelverse/Hotelverse.js.map +1 -1
  11. package/build/components/Booking/partials/Booking.Information.js +0 -1
  12. package/build/components/Booking/partials/Booking.Information.js.map +1 -1
  13. package/build/components/Booking/partials/Booking.Payment.js +0 -1
  14. package/build/components/Booking/partials/Booking.Payment.js.map +1 -1
  15. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.Details.test.js.snap +8 -8
  16. package/build/components/Checkout/Checkout.js +0 -1
  17. package/build/components/Checkout/Checkout.js.map +1 -1
  18. package/build/components/Checkout/__tests__/__snapshots__/Checkout.test.js.snap +16 -16
  19. package/build/components/Checkout/helpers/getFieldProps.js +0 -2
  20. package/build/components/Checkout/helpers/getFieldProps.js.map +1 -1
  21. package/build/components/Deals/Deals.js +4 -5
  22. package/build/components/Deals/Deals.js.map +1 -1
  23. package/build/components/Deals/Deals.module.css +0 -9
  24. package/build/components/Deals/__tests__/__snapshots__/Deals.test.js.snap +40 -20
  25. package/build/components/Finder/Finder.compact.js +2 -2
  26. package/build/components/Finder/Finder.compact.js.map +1 -1
  27. package/build/components/Finder/Finder.module.css +2 -1
  28. package/build/components/Finder/__tests__/__snapshots__/Finder.test.js.snap +126 -56
  29. package/build/components/Profile/components/Bookings/Bookings.js +2 -3
  30. package/build/components/Profile/components/Bookings/Bookings.js.map +1 -1
  31. package/build/components/Profile/components/Settings/Settings.Signout.js +2 -1
  32. package/build/components/Profile/components/Settings/Settings.Signout.js.map +1 -1
  33. package/build/components/Rates/Rates.Header.js +8 -100
  34. package/build/components/Rates/Rates.Header.js.map +1 -1
  35. package/build/components/Rates/Rates.RoomSelector.js +1 -1
  36. package/build/components/Rates/Rates.RoomSelector.js.map +1 -1
  37. package/build/components/Rates/Rates.Unavailability.js +0 -2
  38. package/build/components/Rates/Rates.Unavailability.js.map +1 -1
  39. package/build/components/Rates/Rates.constants.js +8 -2
  40. package/build/components/Rates/Rates.constants.js.map +1 -1
  41. package/build/components/Rates/Rates.js +65 -23
  42. package/build/components/Rates/Rates.js.map +1 -1
  43. package/build/components/Rates/Rates.l10n.js +3 -30
  44. package/build/components/Rates/Rates.l10n.js.map +1 -1
  45. package/build/components/Rates/Rates.module.css +22 -63
  46. package/build/components/Rates/components/CardHotel/CardHotel.js +0 -1
  47. package/build/components/Rates/components/CardHotel/CardHotel.js.map +1 -1
  48. package/build/components/Rates/components/ClubRate/ClubRate.js +7 -4
  49. package/build/components/Rates/components/ClubRate/ClubRate.js.map +1 -1
  50. package/build/components/Rates/components/Filters/Filters.Amenity.js +33 -0
  51. package/build/components/Rates/components/Filters/Filters.Amenity.js.map +1 -0
  52. package/build/components/Rates/components/Filters/Filters.BookingOption.js +50 -0
  53. package/build/components/Rates/components/Filters/Filters.BookingOption.js.map +1 -0
  54. package/build/components/Rates/components/Filters/Filters.Button.js +47 -0
  55. package/build/components/Rates/components/Filters/Filters.Button.js.map +1 -0
  56. package/build/components/Rates/components/Filters/Filters.constants.js +36 -0
  57. package/build/components/Rates/components/Filters/Filters.constants.js.map +1 -0
  58. package/build/components/Rates/components/Filters/Filters.js +370 -0
  59. package/build/components/Rates/components/Filters/Filters.js.map +1 -0
  60. package/build/components/Rates/components/Filters/Filters.l10n.js +78 -0
  61. package/build/components/Rates/components/Filters/Filters.l10n.js.map +1 -0
  62. package/build/components/Rates/components/Filters/Filters.module.css +107 -0
  63. package/build/components/Rates/components/Filters/components/InputRange/InputRange.js +132 -0
  64. package/build/components/Rates/components/Filters/components/InputRange/InputRange.js.map +1 -0
  65. package/build/components/Rates/components/Filters/components/InputRange/InputRange.l10n.js +15 -0
  66. package/build/components/Rates/components/Filters/components/InputRange/InputRange.l10n.js.map +1 -0
  67. package/build/components/Rates/components/Filters/components/InputRange/InputRange.module.css +95 -0
  68. package/build/components/Rates/components/Filters/components/InputRange/helpers/getHistogram.js +50 -0
  69. package/build/components/Rates/components/Filters/components/InputRange/helpers/getHistogram.js.map +1 -0
  70. package/build/components/Rates/components/Filters/components/InputRange/helpers/index.js +17 -0
  71. package/build/components/Rates/components/Filters/components/InputRange/helpers/index.js.map +1 -0
  72. package/build/components/Rates/components/Filters/components/InputRange/index.js +17 -0
  73. package/build/components/Rates/components/Filters/components/InputRange/index.js.map +1 -0
  74. package/build/components/Rates/components/Filters/components/index.js +17 -0
  75. package/build/components/Rates/components/Filters/components/index.js.map +1 -0
  76. package/build/components/Rates/components/Filters/helpers/countFilters.js +17 -0
  77. package/build/components/Rates/components/Filters/helpers/countFilters.js.map +1 -0
  78. package/build/components/Rates/components/Filters/helpers/getAvailableFilters.js +113 -0
  79. package/build/components/Rates/components/Filters/helpers/getAvailableFilters.js.map +1 -0
  80. package/build/components/Rates/components/Filters/helpers/getStrictSearch.js +16 -0
  81. package/build/components/Rates/components/Filters/helpers/getStrictSearch.js.map +1 -0
  82. package/build/components/Rates/components/Filters/helpers/index.js +27 -0
  83. package/build/components/Rates/components/Filters/helpers/index.js.map +1 -0
  84. package/build/components/Rates/components/Filters/index.js +17 -0
  85. package/build/components/Rates/components/Filters/index.js.map +1 -0
  86. package/build/components/Rates/components/Hotelverse/Hotelverse.js +6 -15
  87. package/build/components/Rates/components/Hotelverse/Hotelverse.js.map +1 -1
  88. package/build/components/Rates/components/Item/Item.Preview.js +2 -2
  89. package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
  90. package/build/components/Rates/components/Item/Item.Rates.js +2 -2
  91. package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
  92. package/build/components/Rates/components/Item/Item.js +17 -9
  93. package/build/components/Rates/components/Item/Item.js.map +1 -1
  94. package/build/components/Rates/components/Item/Item.module.css +1 -1
  95. package/build/components/Rates/components/Item/components/Features/Features.js +1 -2
  96. package/build/components/Rates/components/Item/components/Features/Features.js.map +1 -1
  97. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +2 -1
  98. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
  99. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.module.css +3 -0
  100. package/build/components/Rates/components/Item/components/Option/Option.js +7 -1
  101. package/build/components/Rates/components/Item/components/Option/Option.js.map +1 -1
  102. package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js +1 -1
  103. package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js.map +1 -1
  104. package/build/components/Rates/components/Item/components/RateDetails/RateDetails.js +2 -2
  105. package/build/components/Rates/components/Item/components/RateDetails/RateDetails.js.map +1 -1
  106. package/build/components/Rates/components/Item/components/TooltipDates/TooltipDates.js +1 -4
  107. package/build/components/Rates/components/Item/components/TooltipDates/TooltipDates.js.map +1 -1
  108. package/build/components/Rates/components/ModalExtras/ModalExtras.module.css +2 -1
  109. package/build/components/Rates/components/ModalMapView/ModalMapView.js +1 -1
  110. package/build/components/Rates/components/ModalMapView/ModalMapView.js.map +1 -1
  111. package/build/components/Rates/components/index.js +11 -0
  112. package/build/components/Rates/components/index.js.map +1 -1
  113. package/build/components/Rates/helpers/fetchRates.js +62 -0
  114. package/build/components/Rates/helpers/fetchRates.js.map +1 -0
  115. package/build/components/Rates/helpers/filterItem.js +95 -0
  116. package/build/components/Rates/helpers/filterItem.js.map +1 -0
  117. package/build/components/Rates/helpers/index.js +33 -0
  118. package/build/components/Rates/helpers/index.js.map +1 -1
  119. package/build/components/Rates/helpers/select.js +57 -0
  120. package/build/components/Rates/helpers/select.js.map +1 -0
  121. package/build/components/Session/Session.Login.Modal.js +8 -8
  122. package/build/components/Session/Session.Login.Modal.js.map +1 -1
  123. package/build/components/Session/Session.module.css +6 -1
  124. package/build/components/Session/__tests__/__snapshots__/Session.test.js.snap +12 -12
  125. package/build/components/__shared__/BookingSummary/BookingSummary.js +4 -4
  126. package/build/components/__shared__/BookingSummary/BookingSummary.js.map +1 -1
  127. package/build/components/__shared__/BookingTerms/BookingTerms.js +0 -2
  128. package/build/components/__shared__/BookingTerms/BookingTerms.js.map +1 -1
  129. package/build/components/__shared__/BookingTerms/__tests__/__snapshots__/BookingTerms.test.js.snap +4 -4
  130. package/build/components/__shared__/ButtonMore/ButtonMore.js +4 -3
  131. package/build/components/__shared__/ButtonMore/ButtonMore.js.map +1 -1
  132. package/build/components/__shared__/ButtonMore/__tests__/__snapshots__/ButtonMore.test.js.snap +6 -6
  133. package/build/components/__shared__/FieldOccupation/__tests__/__snapshots__/FieldOccupation.test.js.snap +36 -36
  134. package/build/components/__shared__/FieldPromocode/FieldPromocode.constants.js +8 -0
  135. package/build/components/__shared__/FieldPromocode/FieldPromocode.constants.js.map +1 -0
  136. package/build/components/__shared__/FieldPromocode/FieldPromocode.js +12 -4
  137. package/build/components/__shared__/FieldPromocode/FieldPromocode.js.map +1 -1
  138. package/build/components/__shared__/FieldPromocode/FieldPromocode.l10n.js +5 -1
  139. package/build/components/__shared__/FieldPromocode/FieldPromocode.l10n.js.map +1 -1
  140. package/build/components/__shared__/FieldPromocode/FieldPromocode.module.css +1 -1
  141. package/build/components/__shared__/FieldPromocode/__tests__/__snapshots__/FieldPromocode.test.jsx.snap +20 -0
  142. package/build/components/__shared__/Footer/Footer.js +0 -3
  143. package/build/components/__shared__/Footer/Footer.js.map +1 -1
  144. package/build/components/__shared__/Footer/__tests__/__snapshots__/Footer.test.js.snap +8 -8
  145. package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.js +0 -1
  146. package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.js.map +1 -1
  147. package/build/components/__shared__/Occupation/Occupation.js +0 -1
  148. package/build/components/__shared__/Occupation/Occupation.js.map +1 -1
  149. package/build/components/__shared__/Occupation/__tests__/__snapshots__/Occupation.test.js.snap +66 -66
  150. package/build/components/helpers/ICON.js +2 -0
  151. package/build/components/helpers/ICON.js.map +1 -1
  152. package/build/components/helpers/__tests__/__snapshots__/parseHtml.test.js.snap +4 -4
  153. package/build/components/helpers/constants.js +1 -0
  154. package/build/components/helpers/constants.js.map +1 -1
  155. package/build/helpers/consolidateStore.js +1 -1
  156. package/build/helpers/consolidateStore.js.map +1 -1
  157. package/package.json +1 -1
  158. package/public/App.Container.jsx +2 -7
  159. 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":"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"}
@@ -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
+ }