@mirai/core 0.3.60 → 0.3.62

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 (84) hide show
  1. package/build/components/Booking/Booking.l10n.js +3 -3
  2. package/build/components/Booking/Booking.l10n.js.map +1 -1
  3. package/build/components/Booking/partials/__tests__/__snapshots__/Booking.Details.test.js.snap +10 -10
  4. package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Details.test.js.snap +42 -6
  5. package/build/components/Finder/helpers/getForwarderUrl.js +4 -2
  6. package/build/components/Finder/helpers/getForwarderUrl.js.map +1 -1
  7. package/build/components/Rates/Rates.Footer.js +65 -77
  8. package/build/components/Rates/Rates.Footer.js.map +1 -1
  9. package/build/components/Rates/{Rates.Filter.js → Rates.Header.js} +53 -80
  10. package/build/components/Rates/Rates.Header.js.map +1 -0
  11. package/build/components/Rates/Rates.RoomSelector.js +96 -0
  12. package/build/components/Rates/Rates.RoomSelector.js.map +1 -0
  13. package/build/components/Rates/Rates.Skeleton.js +116 -40
  14. package/build/components/Rates/Rates.Skeleton.js.map +1 -1
  15. package/build/components/Rates/Rates.constants.js +7 -1
  16. package/build/components/Rates/Rates.constants.js.map +1 -1
  17. package/build/components/Rates/Rates.js +90 -47
  18. package/build/components/Rates/Rates.js.map +1 -1
  19. package/build/components/Rates/Rates.l10n.js +16 -7
  20. package/build/components/Rates/Rates.l10n.js.map +1 -1
  21. package/build/components/Rates/Rates.module.css +149 -67
  22. package/build/components/Rates/components/Item/Item.Preview.js +46 -29
  23. package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
  24. package/build/components/Rates/components/Item/Item.Rates.js +112 -143
  25. package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
  26. package/build/components/Rates/components/Item/Item.Summary.js +141 -0
  27. package/build/components/Rates/components/Item/Item.Summary.js.map +1 -0
  28. package/build/components/Rates/components/Item/Item.js +67 -64
  29. package/build/components/Rates/components/Item/Item.js.map +1 -1
  30. package/build/components/Rates/components/Item/Item.l10n.js +22 -0
  31. package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
  32. package/build/components/Rates/components/Item/Item.module.css +80 -104
  33. package/build/components/Rates/components/Item/components/Amenities/Amenities.js +15 -9
  34. package/build/components/Rates/components/Item/components/Amenities/Amenities.js.map +1 -1
  35. package/build/components/Rates/components/Item/components/Amenities/Amenities.module.css +11 -3
  36. package/build/components/Rates/components/Item/components/Discount/Discount.js +14 -13
  37. package/build/components/Rates/components/Item/components/Discount/Discount.js.map +1 -1
  38. package/build/components/Rates/components/Item/components/Discount/Discount.module.css +4 -3
  39. package/build/components/Rates/components/Item/components/Features/Features.js +4 -10
  40. package/build/components/Rates/components/Item/components/Features/Features.js.map +1 -1
  41. package/build/components/Rates/components/Item/components/Features/Features.module.css +0 -5
  42. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +34 -6
  43. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
  44. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.module.css +7 -0
  45. package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.js +18 -9
  46. package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.js.map +1 -1
  47. package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.module.css +17 -1
  48. package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.module.css +1 -1
  49. package/build/components/Rates/components/Item/components/Option/Option.js +72 -0
  50. package/build/components/Rates/components/Item/components/Option/Option.js.map +1 -0
  51. package/build/components/Rates/components/Item/components/Option/Option.module.css +24 -0
  52. package/build/components/Rates/components/Item/components/Option/index.js +17 -0
  53. package/build/components/Rates/components/Item/components/Option/index.js.map +1 -0
  54. package/build/components/Rates/components/Item/components/index.js +11 -0
  55. package/build/components/Rates/components/Item/components/index.js.map +1 -1
  56. package/build/components/Rates/helpers/getForwarderUrl.js +23 -12
  57. package/build/components/Rates/helpers/getForwarderUrl.js.map +1 -1
  58. package/build/components/helpers/ICON.js +10 -2
  59. package/build/components/helpers/ICON.js.map +1 -1
  60. package/build/components/helpers/index.js +11 -0
  61. package/build/components/helpers/index.js.map +1 -1
  62. package/build/components/helpers/opacity.js +17 -0
  63. package/build/components/helpers/opacity.js.map +1 -0
  64. package/build/services/Rates/__tests__/__mocks__/rates-response-cancel-types.json +1662 -0
  65. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +296 -510
  66. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +895 -1795
  67. package/build/services/Rates/__tests__/__mocks__/rates-response.json +197 -369
  68. package/build/services/Rates/__tests__/__mocks__/rates-success-cancel-types.json +32481 -0
  69. package/build/services/Rates/constants.js +18 -1
  70. package/build/services/Rates/constants.js.map +1 -1
  71. package/build/services/Rates/get.js +41 -112
  72. package/build/services/Rates/get.js.map +1 -1
  73. package/build/services/Rates/helpers/getIncrements.js +69 -0
  74. package/build/services/Rates/helpers/getIncrements.js.map +1 -0
  75. package/build/services/Rates/helpers/index.js +22 -0
  76. package/build/services/Rates/helpers/index.js.map +1 -1
  77. package/build/services/Rates/helpers/parseBoards.js +156 -0
  78. package/build/services/Rates/helpers/parseBoards.js.map +1 -0
  79. package/build/services/Rates/helpers/parseExternalToken.js +24 -0
  80. package/build/services/Rates/helpers/parseExternalToken.js.map +1 -0
  81. package/package.json +1 -1
  82. package/public/App.module.css +5 -0
  83. package/public/themes/monalisa.theme.css +3 -0
  84. package/build/components/Rates/Rates.Filter.js.map +0 -1
@@ -10,16 +10,20 @@ body {
10
10
  border-bottom: solid 1px var(--mirai-ui-content-border);
11
11
  border-top: solid 1px var(--mirai-ui-content-border);
12
12
  padding: var(--mirai-ui-space-XS);
13
+ }
14
+
15
+ .finder.sticky {
13
16
  position: sticky;
14
17
  top: 0;
15
18
  z-index: var(--mirai-ui-layer-M);
16
19
  }
17
20
 
18
21
  .progress {
19
- position: fixed;
22
+ position: absolute;
20
23
  top: 0;
21
24
  left: 0;
22
25
  right: 0;
26
+ z-index: 1;
23
27
  }
24
28
 
25
29
  .container {
@@ -41,21 +45,26 @@ body {
41
45
  width: 100%;
42
46
  }
43
47
 
44
- /* -- Filter */
45
- .filter {
46
- justify-content: space-between;
48
+ /* -- <Header> ------------------------------------------------------------------------------------------------------ */
49
+ .header {
50
+ gap: var(--mirai-ui-space-XS);
51
+ justify-content: flex-end;
47
52
  }
48
53
 
49
- .filter .fields {
50
- gap: var(--mirai-ui-space-XS);
54
+ .header.sticky {
55
+ backdrop-filter: blur(8px);
56
+ background-color: var(--mirai-ui-content-background);
57
+ position: sticky;
58
+ top: 0;
59
+ z-index: var(--mirai-ui-layer-M);
51
60
  }
52
61
 
53
- .filter .input {
62
+ .header .input {
54
63
  margin-bottom: 0;
55
64
  align-self: center;
56
65
  }
57
66
 
58
- .filter .currencyValue {
67
+ .header .currencyValue {
59
68
  background-color: var(--mirai-ui-base);
60
69
  bottom: calc(var(--mirai-ui-border-width) * 2);
61
70
  font-family: var(--mirai-ui-input-font);
@@ -75,45 +84,91 @@ body {
75
84
  -moz-appearance: none;
76
85
  }
77
86
 
78
- .filter .selectCurrencies {
87
+ .header .selectCurrencies {
79
88
  max-width: calc(var(--mirai-ui-space-XL) * 1.8);
80
89
  min-width: calc(var(--mirai-ui-space-XL) * 1.8);
81
90
  }
82
91
 
83
- .filter .selectCurrencies [data-role='select'] {
92
+ .header .selectCurrencies [data-role='select'] {
84
93
  color: transparent;
85
94
  }
86
95
 
87
- .filter .clubDiscount {
88
- gap: calc(var(--mirai-ui-space-XS) / 2);
96
+ .header .tooltip [data-role='text'] {
97
+ color: var(--mirai-ui-tooltip-color);
89
98
  }
90
99
 
91
- .filter .tag {
100
+ .header .action {
101
+ display: inline;
102
+ font-size: inherit;
103
+ pointer-events: auto;
104
+ overflow: auto;
105
+ }
106
+
107
+ .header .action:hover {
108
+ color: var(--mirai-ui-tooltip-color);
109
+ }
110
+
111
+ .tag {
92
112
  align-items: center;
93
113
  background-color: var(--mirai-ui-base);
94
114
  border: var(--mirai-ui-input-text-border);
95
115
  border-radius: var(--mirai-ui-input-text-radius);
96
116
  display: flex;
97
- gap: var(--mirai-ui-space-S);
117
+ gap: var(--mirai-ui-space-XS);
98
118
  min-height: var(--mirai-ui-input-min-height);
99
119
  padding-left: var(--mirai-ui-input-text-padding-x);
100
120
  padding-right: var(--mirai-ui-input-text-padding-x);
101
121
  }
102
122
 
103
- .filter .tag.active {
123
+ .tag > [data-role] {
124
+ color: var(--mirai-ui-content-light);
125
+ }
126
+
127
+ .tag.active {
104
128
  background-color: var(--mirai-ui-accent);
105
129
  }
106
130
 
107
- .filter .tag.active [data-role] {
131
+ .tag.active > [data-role] {
108
132
  color: var(--mirai-ui-base);
109
133
  }
110
134
 
111
- .filter .tag.active,
112
- .filter .tag.pressable:hover {
135
+ .tag.active,
136
+ .tag.pressable:hover {
113
137
  border-color: var(--mirai-ui-accent);
114
138
  }
115
139
 
116
- /* -- Footer */
140
+ .tag.highlight {
141
+ border-color: var(--mirai-ui-accent);
142
+ }
143
+
144
+ .tag.highlight > [data-role] {
145
+ color: var(--mirai-ui-accent);
146
+ }
147
+
148
+ .tag.room {
149
+ min-width: fit-content;
150
+ }
151
+
152
+ .tag.room .guests {
153
+ gap: calc(var(--mirai-ui-space-XS) / 2);
154
+ }
155
+
156
+ .tag.room .separator {
157
+ opacity: 0.33;
158
+ }
159
+
160
+ /* -- <RoomSelector> ------------------------------------------------------------------------------------------------ */
161
+ .roomSelector {
162
+ flex: 1;
163
+ gap: var(--mirai-ui-space-XS);
164
+ }
165
+
166
+ /* -- <Items> ------------------------------------------------------------------------------------------------------- */
167
+ .items {
168
+ gap: var(--mirai-ui-space-M);
169
+ }
170
+
171
+ /* -- <Footer> ------------------------------------------------------------------------------------------------------ */
117
172
  .footer {
118
173
  background-color: var(--mirai-ui-base);
119
174
  bottom: 0;
@@ -129,48 +184,37 @@ body {
129
184
  transform: translateY(0%);
130
185
  }
131
186
 
132
- .footer .price {
133
- flex: 1;
134
- gap: calc(var(--mirai-ui-space-XS) / 2);
135
- }
136
-
137
- .footer .price .line {
138
- gap: var(--mirai-ui-space-XS);
139
- }
140
-
141
- .footer .expanded {
142
- padding-bottom: var(--mirai-ui-space-S);
143
- margin-bottom: var(--mirai-ui-space-M);
144
- gap: calc(var(--mirai-ui-space-XS) / 2);
187
+ .footer .cartItem {
145
188
  box-shadow: inset 0 -1px 0 var(--mirai-ui-content-border);
146
- }
147
-
148
- .footer .item {
149
- background-color: var(--mirai-ui-content-background);
150
- border-radius: var(--mirai-ui-border-radius);
151
189
  gap: var(--mirai-ui-space-XS);
152
- padding: calc(var(--mirai-ui-space-XS) / 2) var(--mirai-ui-space-XS) calc(var(--mirai-ui-space-XS) / 2)
153
- var(--mirai-ui-space-XS);
154
190
  }
155
191
 
156
- .footer .item .amount {
192
+ .cartItem .room {
157
193
  background-color: var(--mirai-ui-content-border);
158
- border-radius: var(--mirai-ui-border-radius);
194
+ border-radius: calc(var(--mirai-ui-border-radius) / 2);
159
195
  height: var(--mirai-ui-space-L);
160
196
  line-height: var(--mirai-ui-space-L);
161
- text-align: center;
162
- width: var(--mirai-ui-space-L);
197
+ padding: 0 var(--mirai-ui-space-XS);
163
198
  }
164
199
 
165
- .footer .item .description {
200
+ .cartItem .description {
166
201
  flex: 1;
167
202
  overflow: hidden;
168
203
  text-overflow: ellipsis;
169
204
  white-space: nowrap;
170
205
  }
171
206
 
172
- .footer > .wrapper:not(.expanded) {
173
- gap: var(--mirai-ui-space-M);
207
+ .cartItem .buttonClose {
208
+ background-color: var(--mirai-ui-content-background);
209
+ }
210
+
211
+ .footer .summary {
212
+ gap: var(--mirai-ui-space-S);
213
+ }
214
+
215
+ .footer .totalPrice {
216
+ flex: 1;
217
+ gap: calc(var(--mirai-ui-space-XS) / 2);
174
218
  }
175
219
 
176
220
  /* -- common ---------------------------------------------------------------- */
@@ -181,48 +225,86 @@ body {
181
225
  padding: var(--mirai-ui-space-M);
182
226
  }
183
227
 
184
- /* S & M */
185
- @media only screen and (max-width: 820px) {
228
+ /* S */
229
+ @media only screen and (max-width: 430px) {
186
230
  .container {
187
- padding: var(--mirai-ui-space-S) var(--mirai-ui-space-XS);
231
+ padding: 0 var(--mirai-ui-space-XS) var(--mirai-ui-space-M) var(--mirai-ui-space-XS);
188
232
  }
189
233
 
190
- .container > .content {
191
- gap: var(--mirai-ui-space-S);
234
+ .header {
235
+ padding: var(--mirai-ui-space-M) 0;
192
236
  }
193
237
 
194
- .footer {
195
- padding: var(--mirai-ui-space-S);
238
+ .header .tag {
239
+ justify-content: space-between;
196
240
  }
197
241
 
198
- .footer .expanded {
199
- padding-bottom: var(--mirai-ui-space-S);
242
+ /* -- <RoomSelector> ---------------------------------------------------------------------------------------------- */
243
+ .roomSelector {
244
+ background-color: var(--mirai-ui-base);
245
+ border-bottom: solid 1px var(--mirai-ui-content-border);
246
+ left: 0;
247
+ padding: var(--mirai-ui-space-XS);
248
+ position: sticky;
249
+ right: 0;
250
+ top: 0;
251
+ width: auto;
252
+ z-index: var(--mirai-ui-layer-M);
200
253
  }
201
254
 
202
- .filter {
203
- gap: var(--mirai-ui-space-S);
255
+ .roomSelector .tag {
256
+ min-height: calc(var(--mirai-ui-space-L) + var(--mirai-ui-space-M));
257
+ padding-left: calc(var(--mirai-ui-input-text-padding-x) / 2);
258
+ padding-right: calc(var(--mirai-ui-input-text-padding-x) / 2);
204
259
  }
205
260
 
206
- .filter .tag {
207
- justify-content: space-between;
261
+ /* -- <Footer> ---------------------------------------------------------------------------------------------------- */
262
+ .footer .cartItem {
263
+ padding: var(--mirai-ui-space-XS) var(--mirai-ui-space-S);
264
+ }
265
+
266
+ .footer .summary {
267
+ align-items: flex-end;
268
+ padding: var(--mirai-ui-space-S);
208
269
  }
209
270
  }
210
271
 
211
- /* L */
212
- @media only screen and (min-width: 821px) {
272
+ /* M & L */
273
+ @media only screen and (min-width: 431px) {
213
274
  .container {
214
- padding: var(--mirai-ui-space-L) var(--mirai-ui-space-M);
275
+ padding: 0 var(--mirai-ui-space-M) var(--mirai-ui-space-M) var(--mirai-ui-space-M);
276
+ }
277
+
278
+ /* -- <Header> ---------------------------------------------------------------------------------------------------- */
279
+ .header {
280
+ padding: var(--mirai-ui-space-M) 0;
281
+ }
282
+
283
+ /* -- <Items> ----------------------------------------------------------------------------------------------------- */
284
+ .items {
285
+ align-items: stretch;
286
+ flex-wrap: wrap;
215
287
  }
216
288
 
217
- .container > .content {
218
- gap: var(--mirai-ui-space-L);
289
+ .items > * {
290
+ box-sizing: border-box;
291
+ flex-basis: calc(33.33% - calc(calc(var(--mirai-ui-space-M) * 2) / 3));
219
292
  }
220
293
 
294
+ /* -- <Footer> ---------------------------------------------------------------------------------------------------- */
221
295
  .footer {
222
- padding: var(--mirai-ui-space-M);
296
+ padding: 0 var(--mirai-ui-space-M);
297
+ }
298
+
299
+ .footer .cartItem {
300
+ padding: var(--mirai-ui-space-S) 0;
301
+ }
302
+
303
+ .footer .summary {
304
+ padding: var(--mirai-ui-space-M) 0;
223
305
  }
224
306
 
225
- .footer .expanded {
226
- padding-bottom: var(--mirai-ui-space-M);
307
+ .footer .buttons {
308
+ gap: var(--mirai-ui-space-M);
227
309
  }
228
310
  }
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.Preview = void 0;
7
7
  var _locale = require("@mirai/locale");
8
8
  var _ui = require("@mirai/ui");
9
- var _Slider = require("@mirai/ui/build/components/Slider");
10
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
10
  var _react = _interopRequireWildcard(require("react"));
12
11
  var _components = require("./components");
@@ -19,57 +18,49 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
19
18
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
20
19
  const Preview = _ref => {
21
20
  let {
21
+ cancellations = [],
22
22
  images = [],
23
23
  media: {
24
24
  url3D,
25
25
  urlVideo
26
26
  } = {},
27
+ name: title,
28
+ selectedBoard = {},
27
29
  onMoreInfo,
30
+ onRateInfo,
28
31
  onViewUrl = () => {},
29
32
  ...others
30
33
  } = _ref;
31
34
  const {
32
- isDesktop,
35
+ isMobile,
33
36
  width
34
37
  } = (0, _ui.useDevice)();
35
38
  const {
36
39
  translate
37
40
  } = (0, _locale.useLocale)();
38
41
  const ref = (0, _react.useRef)(null);
42
+ const [sliderIndex, setSliderIndex] = (0, _react.useState)(0);
39
43
  const [sliderWidth, setSliderWidth] = (0, _react.useState)(320);
40
44
  (0, _react.useEffect)(() => {
41
45
  var _ref$current;
42
46
  if (ref.current) setSliderWidth((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.clientWidth);
43
47
  }, [width]);
44
48
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
45
- ref: ref,
46
- className: style.preview
49
+ ref: ref
47
50
  }, /*#__PURE__*/_react.default.createElement(_ui.View, {
48
51
  className: style.slider
49
- }, /*#__PURE__*/_react.default.createElement(_Slider.Slider, {
50
- captions: images.map(_ref2 => {
51
- let {
52
- alt
53
- } = _ref2;
54
- return alt;
55
- }),
56
- height: 220,
57
- images: images.map(_ref3 => {
52
+ }, /*#__PURE__*/_react.default.createElement(_ui.Slider, {
53
+ height: 210,
54
+ images: images.map(_ref2 => {
58
55
  let {
59
56
  large
60
- } = _ref3;
57
+ } = _ref2;
61
58
  return large;
62
59
  }),
63
- thumbnails: images.map(_ref4 => {
64
- let {
65
- thumbnail
66
- } = _ref4;
67
- return thumbnail;
68
- }),
69
60
  width: sliderWidth,
70
- onChange: () => {},
61
+ onChange: setSliderIndex,
71
62
  className: style.slider
72
- }), (url3D || urlVideo) && /*#__PURE__*/_react.default.createElement(_ui.View, {
63
+ }), (url3D || urlVideo) && sliderIndex === 0 && /*#__PURE__*/_react.default.createElement(_ui.View, {
73
64
  row: true,
74
65
  className: style.buttons
75
66
  }, urlVideo && /*#__PURE__*/_react.default.createElement(_ui.Button, {
@@ -100,17 +91,41 @@ const Preview = _ref => {
100
91
  headline: true,
101
92
  level: 2,
102
93
  value: _helpers.ICON.THREE_D
103
- })))), /*#__PURE__*/_react.default.createElement(_components.Features, _extends({
104
- box: true
105
- }, others)), isDesktop && /*#__PURE__*/_react.default.createElement(_components.Amenities, _extends({
106
- highlight: true
107
- }, others)), /*#__PURE__*/_react.default.createElement(_ui.Action, {
94
+ })))), /*#__PURE__*/_react.default.createElement(_ui.View, {
95
+ className: [style.offset, style.anchor]
96
+ }, /*#__PURE__*/_react.default.createElement(_components.Features, _extends({
97
+ _box: true
98
+ }, others))), /*#__PURE__*/_react.default.createElement(_ui.View, {
99
+ className: [style.offset, style.gap, style.anchor]
100
+ }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
101
+ bold: true,
102
+ headline: !isMobile,
103
+ level: 3
104
+ }, title), /*#__PURE__*/_react.default.createElement(_components.Amenities, _extends({
105
+ highlight: true,
106
+ preview: true
107
+ }, others)), cancellations.length === 1 && /*#__PURE__*/_react.default.createElement(_ui.View, null, /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
108
+ onPress: () => onRateInfo({
109
+ ...selectedBoard,
110
+ cancellation: cancellations[0]
111
+ }),
112
+ className: style.row
113
+ }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
114
+ action: true
115
+ }, cancellations[0].name), /*#__PURE__*/_react.default.createElement(_ui.Icon, {
116
+ value: _helpers.ICON.INFO
117
+ })), cancellations[0].caption && /*#__PURE__*/_react.default.createElement(_ui.Text, {
118
+ small: true
119
+ }, cancellations[0].caption)), /*#__PURE__*/_react.default.createElement(_ui.Action, {
108
120
  inline: true,
121
+ small: isMobile,
109
122
  onPress: onMoreInfo
110
- }, translate(_Item.L10N.ACTION_MORE_INFO)));
123
+ }, "".concat(translate(_Item.L10N.ACTION_MORE_INFO), " >"))));
111
124
  };
112
125
  exports.Preview = Preview;
126
+ Preview.displayName = 'Mirai:Core:Rates:Item.Preview';
113
127
  Preview.propTypes = {
128
+ cancellations: _propTypes.default.arrayOf(_propTypes.default.any),
114
129
  images: _propTypes.default.arrayOf(_propTypes.default.shape({
115
130
  alt: _propTypes.default.string,
116
131
  large: _propTypes.default.string,
@@ -120,8 +135,10 @@ Preview.propTypes = {
120
135
  url3D: _propTypes.default.string,
121
136
  urlVideo: _propTypes.default.string
122
137
  }),
138
+ name: _propTypes.default.string,
139
+ selectedBoard: _propTypes.default.shape({}),
123
140
  onMoreInfo: _propTypes.default.func,
141
+ onRateInfo: _propTypes.default.func,
124
142
  onViewUrl: _propTypes.default.func
125
143
  };
126
- Preview.displayName = 'Mirai:Core:Rates:Item.Preview';
127
144
  //# sourceMappingURL=Item.Preview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Item.Preview.js","names":["_locale","require","_ui","_Slider","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Item","style","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Preview","_ref","images","media","url3D","urlVideo","onMoreInfo","onViewUrl","others","isDesktop","width","useDevice","translate","useLocale","ref","useRef","sliderWidth","setSliderWidth","useState","useEffect","_ref$current","current","clientWidth","createElement","View","className","preview","slider","Slider","captions","map","_ref2","alt","height","_ref3","large","thumbnails","_ref4","thumbnail","onChange","row","buttons","Button","rounded","squared","tooltip","L10N","LABEL_VIEW_VIDEO","transparent","onPress","title","url","button","Icon","headline","level","value","ICON","PLAY","LABEL_3D_VIEW","THREE_D","Features","box","Amenities","highlight","Action","inline","ACTION_MORE_INFO","exports","propTypes","PropTypes","arrayOf","shape","string","func","displayName"],"sources":["../../../../../src/components/Rates/components/Item/Item.Preview.jsx"],"sourcesContent":["import { useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, useDevice, View } from '@mirai/ui';\nimport { Slider } from '@mirai/ui/build/components/Slider';\nimport PropTypes from 'prop-types';\nimport React, { useRef, useEffect, useState } from 'react';\n\nimport { Amenities, Features } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { ICON } from '../../../helpers';\n\nconst Preview = ({ images = [], media: { url3D, urlVideo } = {}, onMoreInfo, onViewUrl = () => {}, ...others }) => {\n const { isDesktop, width } = useDevice();\n const { translate } = useLocale();\n const ref = useRef(null);\n\n const [sliderWidth, setSliderWidth] = useState(320);\n\n useEffect(() => {\n if (ref.current) setSliderWidth(ref.current?.clientWidth);\n }, [width]);\n\n return (\n <View ref={ref} className={style.preview}>\n <View className={style.slider}>\n <Slider\n captions={images.map(({ alt }) => alt)}\n height={220}\n images={images.map(({ large }) => large)}\n thumbnails={images.map(({ thumbnail }) => thumbnail)}\n width={sliderWidth}\n onChange={() => {}}\n className={style.slider}\n />\n\n {(url3D || urlVideo) && (\n <View row className={style.buttons}>\n {urlVideo && (\n <Button\n rounded\n squared\n tooltip={translate(L10N.LABEL_VIEW_VIDEO)}\n transparent\n onPress={() => onViewUrl({ title: translate(L10N.LABEL_VIEW_VIDEO), url: urlVideo })}\n className={style.button}\n >\n <Icon headline level={2} value={ICON.PLAY} />\n </Button>\n )}\n\n {url3D && (\n <Button\n rounded\n squared\n tooltip={translate(L10N.LABEL_3D_VIEW)}\n transparent\n onPress={() => onViewUrl({ title: translate(L10N.LABEL_3D_VIEW), url: url3D })}\n className={style.button}\n >\n <Icon headline level={2} value={ICON.THREE_D} />\n </Button>\n )}\n </View>\n )}\n </View>\n <Features box {...others} />\n {isDesktop && <Amenities highlight {...others} />}\n <Action inline onPress={onMoreInfo}>\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n </View>\n );\n};\n\nPreview.propTypes = {\n images: PropTypes.arrayOf(\n PropTypes.shape({\n alt: PropTypes.string,\n large: PropTypes.string,\n thumbnail: PropTypes.string,\n }),\n ),\n media: PropTypes.shape({\n url3D: PropTypes.string,\n urlVideo: PropTypes.string,\n }),\n onMoreInfo: PropTypes.func,\n onViewUrl: PropTypes.func,\n};\n\nPreview.displayName = 'Mirai:Core:Rates:Item.Preview';\n\nexport { Preview };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Item.Preview.js","names":["_locale","require","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Item","style","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Preview","_ref","cancellations","images","media","url3D","urlVideo","name","title","selectedBoard","onMoreInfo","onRateInfo","onViewUrl","others","isMobile","width","useDevice","translate","useLocale","ref","useRef","sliderIndex","setSliderIndex","useState","sliderWidth","setSliderWidth","useEffect","_ref$current","current","clientWidth","createElement","View","className","slider","Slider","height","map","_ref2","large","onChange","row","buttons","Button","rounded","squared","tooltip","L10N","LABEL_VIEW_VIDEO","transparent","onPress","url","button","Icon","headline","level","value","ICON","PLAY","LABEL_3D_VIEW","THREE_D","offset","anchor","Features","_box","gap","Text","bold","Amenities","highlight","preview","Pressable","cancellation","action","INFO","caption","small","Action","inline","concat","ACTION_MORE_INFO","exports","displayName","propTypes","PropTypes","arrayOf","any","shape","alt","string","thumbnail","func"],"sources":["../../../../../src/components/Rates/components/Item/Item.Preview.jsx"],"sourcesContent":["import { useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, Pressable, Slider, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useRef, useEffect, useState } from 'react';\n\nimport { Amenities, Features } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { ICON } from '../../../helpers';\n\nconst Preview = ({\n cancellations = [],\n images = [],\n media: { url3D, urlVideo } = {},\n name: title,\n selectedBoard = {},\n onMoreInfo,\n onRateInfo,\n onViewUrl = () => {},\n ...others\n}) => {\n const { isMobile, width } = useDevice();\n const { translate } = useLocale();\n const ref = useRef(null);\n\n const [sliderIndex, setSliderIndex] = useState(0);\n const [sliderWidth, setSliderWidth] = useState(320);\n\n useEffect(() => {\n if (ref.current) setSliderWidth(ref.current?.clientWidth);\n }, [width]);\n\n return (\n <View ref={ref}>\n <View className={style.slider}>\n <Slider\n height={210}\n images={images.map(({ large }) => large)}\n width={sliderWidth}\n onChange={setSliderIndex}\n className={style.slider}\n />\n\n {(url3D || urlVideo) && sliderIndex === 0 && (\n <View row className={style.buttons}>\n {urlVideo && (\n <Button\n rounded\n squared\n tooltip={translate(L10N.LABEL_VIEW_VIDEO)}\n transparent\n onPress={() => onViewUrl({ title: translate(L10N.LABEL_VIEW_VIDEO), url: urlVideo })}\n className={style.button}\n >\n <Icon headline level={2} value={ICON.PLAY} />\n </Button>\n )}\n\n {url3D && (\n <Button\n rounded\n squared\n tooltip={translate(L10N.LABEL_3D_VIEW)}\n transparent\n onPress={() => onViewUrl({ title: translate(L10N.LABEL_3D_VIEW), url: url3D })}\n className={style.button}\n >\n <Icon headline level={2} value={ICON.THREE_D} />\n </Button>\n )}\n </View>\n )}\n </View>\n\n <View className={[style.offset, style.anchor]}>\n <Features _box {...others} />\n </View>\n\n <View className={[style.offset, style.gap, style.anchor]}>\n <Text bold headline={!isMobile} level={3}>\n {title}\n </Text>\n\n <Amenities highlight preview {...others} />\n\n {cancellations.length === 1 && (\n <View>\n <Pressable\n onPress={() => onRateInfo({ ...selectedBoard, cancellation: cancellations[0] })}\n className={style.row}\n >\n <Text action>{cancellations[0].name}</Text>\n <Icon value={ICON.INFO} />\n </Pressable>\n {cancellations[0].caption && <Text small>{cancellations[0].caption}</Text>}\n </View>\n )}\n\n <Action inline small={isMobile} onPress={onMoreInfo}>\n {`${translate(L10N.ACTION_MORE_INFO)} >`}\n </Action>\n </View>\n </View>\n );\n};\n\nPreview.displayName = 'Mirai:Core:Rates:Item.Preview';\n\nPreview.propTypes = {\n cancellations: PropTypes.arrayOf(PropTypes.any),\n images: PropTypes.arrayOf(\n PropTypes.shape({\n alt: PropTypes.string,\n large: PropTypes.string,\n thumbnail: PropTypes.string,\n }),\n ),\n media: PropTypes.shape({\n url3D: PropTypes.string,\n urlVideo: PropTypes.string,\n }),\n name: PropTypes.string,\n selectedBoard: PropTypes.shape({}),\n onMoreInfo: PropTypes.func,\n onRateInfo: PropTypes.func,\n onViewUrl: PropTypes.func,\n};\n\nexport { Preview };\n"],"mappings":"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"}