@mirai/core 0.3.52 → 0.3.53

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 (46) hide show
  1. package/build/components/Checkout/helpers/index.js +0 -11
  2. package/build/components/Checkout/helpers/index.js.map +1 -1
  3. package/build/components/Checkout/partials/Checkout.Form.js +1 -1
  4. package/build/components/Checkout/partials/Checkout.Form.js.map +1 -1
  5. package/build/components/Rates/Rates.Footer.js +23 -18
  6. package/build/components/Rates/Rates.Footer.js.map +1 -1
  7. package/build/components/Rates/Rates.constants.js +8 -0
  8. package/build/components/Rates/Rates.constants.js.map +1 -1
  9. package/build/components/Rates/Rates.js +35 -14
  10. package/build/components/Rates/Rates.js.map +1 -1
  11. package/build/components/Rates/Rates.l10n.js +9 -4
  12. package/build/components/Rates/Rates.l10n.js.map +1 -1
  13. package/build/components/Rates/Rates.module.css +15 -7
  14. package/build/components/Rates/components/Item/Item.Preview.js +127 -0
  15. package/build/components/Rates/components/Item/Item.Preview.js.map +1 -0
  16. package/build/components/Rates/components/Item/Item.Rates.js +185 -0
  17. package/build/components/Rates/components/Item/Item.Rates.js.map +1 -0
  18. package/build/components/Rates/components/Item/Item.js +10 -188
  19. package/build/components/Rates/components/Item/Item.js.map +1 -1
  20. package/build/components/Rates/components/Item/Item.l10n.js +6 -0
  21. package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
  22. package/build/components/Rates/components/Item/Item.module.css +21 -0
  23. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +1 -4
  24. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
  25. package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.js +38 -0
  26. package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.js.map +1 -0
  27. package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.module.css +20 -0
  28. package/build/components/Rates/components/Item/components/ModalUrl/index.js +17 -0
  29. package/build/components/Rates/components/Item/components/ModalUrl/index.js.map +1 -0
  30. package/build/components/Rates/components/Item/components/index.js +11 -0
  31. package/build/components/Rates/components/Item/components/index.js.map +1 -1
  32. package/build/components/Rates/components/Item/index.js +8 -1
  33. package/build/components/Rates/components/Item/index.js.map +1 -1
  34. package/build/components/helpers/ICON.js +4 -0
  35. package/build/components/helpers/ICON.js.map +1 -1
  36. package/build/components/helpers/generateId.js.map +1 -0
  37. package/build/components/helpers/index.js +11 -0
  38. package/build/components/helpers/index.js.map +1 -1
  39. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +0 -18
  40. package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +0 -12
  41. package/build/services/Rates/__tests__/__mocks__/rates-response.json +0 -6
  42. package/build/services/Rates/get.js +7 -4
  43. package/build/services/Rates/get.js.map +1 -1
  44. package/package.json +1 -1
  45. package/build/components/Checkout/helpers/generateId.js.map +0 -1
  46. /package/build/components/{Checkout/helpers → helpers}/generateId.js +0 -0
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Preview = void 0;
7
+ var _locale = require("@mirai/locale");
8
+ var _ui = require("@mirai/ui");
9
+ var _Slider = require("@mirai/ui/build/components/Slider");
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _components = require("./components");
13
+ var _Item = require("./Item.l10n");
14
+ var style = _interopRequireWildcard(require("./Item.module.css"));
15
+ var _helpers = require("../../../helpers");
16
+ 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); }
17
+ 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; }
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ 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
+ const Preview = _ref => {
21
+ let {
22
+ images = [],
23
+ media: {
24
+ url3D,
25
+ urlVideo
26
+ } = {},
27
+ onMoreInfo,
28
+ onViewUrl = () => {},
29
+ ...others
30
+ } = _ref;
31
+ const {
32
+ isDesktop,
33
+ width
34
+ } = (0, _ui.useDevice)();
35
+ const {
36
+ translate
37
+ } = (0, _locale.useLocale)();
38
+ const ref = (0, _react.useRef)(null);
39
+ const [sliderWidth, setSliderWidth] = (0, _react.useState)(320);
40
+ (0, _react.useEffect)(() => {
41
+ var _ref$current;
42
+ if (ref.current) setSliderWidth((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.clientWidth);
43
+ }, [width]);
44
+ return /*#__PURE__*/_react.default.createElement(_ui.View, {
45
+ ref: ref,
46
+ className: style.preview
47
+ }, /*#__PURE__*/_react.default.createElement(_ui.View, {
48
+ 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 => {
58
+ let {
59
+ large
60
+ } = _ref3;
61
+ return large;
62
+ }),
63
+ thumbnails: images.map(_ref4 => {
64
+ let {
65
+ thumbnail
66
+ } = _ref4;
67
+ return thumbnail;
68
+ }),
69
+ width: sliderWidth,
70
+ onChange: () => {},
71
+ className: style.slider
72
+ }), (url3D || urlVideo) && /*#__PURE__*/_react.default.createElement(_ui.View, {
73
+ row: true,
74
+ className: style.buttons
75
+ }, urlVideo && /*#__PURE__*/_react.default.createElement(_ui.Button, {
76
+ rounded: true,
77
+ squared: true,
78
+ tooltip: translate(_Item.L10N.LABEL_VIEW_VIDEO),
79
+ transparent: true,
80
+ onPress: () => onViewUrl({
81
+ title: translate(_Item.L10N.LABEL_VIEW_VIDEO),
82
+ url: urlVideo
83
+ }),
84
+ className: style.button
85
+ }, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
86
+ headline: true,
87
+ level: 2,
88
+ value: _helpers.ICON.PLAY
89
+ })), url3D && /*#__PURE__*/_react.default.createElement(_ui.Button, {
90
+ rounded: true,
91
+ squared: true,
92
+ tooltip: translate(_Item.L10N.LABEL_3D_VIEW),
93
+ transparent: true,
94
+ onPress: () => onViewUrl({
95
+ title: translate(_Item.L10N.LABEL_3D_VIEW),
96
+ url: url3D
97
+ }),
98
+ className: style.button
99
+ }, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
100
+ headline: true,
101
+ level: 2,
102
+ 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, {
108
+ inline: true,
109
+ onPress: onMoreInfo
110
+ }, translate(_Item.L10N.ACTION_MORE_INFO)));
111
+ };
112
+ exports.Preview = Preview;
113
+ Preview.propTypes = {
114
+ images: _propTypes.default.arrayOf(_propTypes.default.shape({
115
+ alt: _propTypes.default.string,
116
+ large: _propTypes.default.string,
117
+ thumbnail: _propTypes.default.string
118
+ })),
119
+ media: _propTypes.default.shape({
120
+ url3D: _propTypes.default.string,
121
+ urlVideo: _propTypes.default.string
122
+ }),
123
+ onMoreInfo: _propTypes.default.func,
124
+ onViewUrl: _propTypes.default.func
125
+ };
126
+ Preview.displayName = 'Mirai:Core:Rates:Item.Preview';
127
+ //# sourceMappingURL=Item.Preview.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Rates = 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 _Item = require("./Item.l10n");
14
+ var style = _interopRequireWildcard(require("./Item.module.css"));
15
+ var _shared__ = require("../../../__shared__");
16
+ var _helpers = require("../../../helpers");
17
+ 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); }
18
+ 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; }
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+ const Rates = _ref => {
21
+ let {
22
+ availability = 0,
23
+ filter = {},
24
+ occupation = [],
25
+ rates = [],
26
+ selected = {},
27
+ onChange,
28
+ onRateInfo
29
+ } = _ref;
30
+ const {
31
+ isDesktop
32
+ } = (0, _ui.useDevice)();
33
+ const {
34
+ translate
35
+ } = (0, _locale.useLocale)();
36
+ const {
37
+ value: {
38
+ currency
39
+ } = {}
40
+ } = (0, _dataSources.useStore)();
41
+ const [expanded, setExpanded] = (0, _react.useState)(rates.length < 3);
42
+ const [expandedRate, setExpandedRate] = (0, _react.useState)([]);
43
+ const availableAmount = availability - rates.reduce((total, _ref2) => {
44
+ var _selected$id;
45
+ let {
46
+ id
47
+ } = _ref2;
48
+ return total + (((_selected$id = selected[id]) === null || _selected$id === void 0 ? void 0 : _selected$id.amount) || 0);
49
+ }, 0);
50
+ return /*#__PURE__*/_react.default.createElement(_ui.View, {
51
+ className: (0, _ui.styles)(style.rates, expanded && style.expanded),
52
+ wide: true
53
+ }, rates.filter(function () {
54
+ let rate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
55
+ return filter.board ? rate.boardName === filter.board : true;
56
+ }).map(function () {
57
+ let rate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
58
+ const {
59
+ basePrice,
60
+ boardName,
61
+ cancellation = {},
62
+ discount = {},
63
+ included = [],
64
+ id,
65
+ name,
66
+ dayPrice,
67
+ price,
68
+ restrictions = [],
69
+ amount: [min = 1, max = 2] = []
70
+ } = rate;
71
+ const {
72
+ amount = 0
73
+ } = selected[id] || {};
74
+ const rateAvailability = [0, ...Array.from({
75
+ length: max - min + 1
76
+ }).map((_, index) => index + min)];
77
+ const expandedContent = included.length === 1 || expandedRate.includes(id);
78
+ return /*#__PURE__*/_react.default.createElement(_ui.View, {
79
+ key: id,
80
+ className: (0, _ui.styles)(style.box, style.rate, amount && style.selected)
81
+ }, /*#__PURE__*/_react.default.createElement(_ui.View, {
82
+ row: true,
83
+ className: style.header
84
+ }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
85
+ lighten: true,
86
+ small: true,
87
+ upperCase: true
88
+ }, boardName), discount.percentage > 0 && /*#__PURE__*/_react.default.createElement(_components.Discount, rate)), /*#__PURE__*/_react.default.createElement(_ui.View, {
89
+ row: isDesktop,
90
+ className: style.content
91
+ }, /*#__PURE__*/_react.default.createElement(_ui.View, {
92
+ className: style.texts
93
+ }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
94
+ bold: true,
95
+ headline: true,
96
+ level: 3
97
+ }, name), included.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.View, null, included.slice(0, expandedContent ? undefined : 1).map((item, index) => /*#__PURE__*/_react.default.createElement(_ui.Text, {
98
+ key: index,
99
+ small: true,
100
+ lighten: true,
101
+ wide: true
102
+ }, item, index === 0 && !expandedContent && /*#__PURE__*/_react.default.createElement(_ui.Action, {
103
+ inline: true,
104
+ small: true,
105
+ onPress: () => setExpandedRate([...expandedRate, id]),
106
+ className: style.actionExpand
107
+ }, "More Info")))), restrictions.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.Notification, {
108
+ small: true,
109
+ warning: true
110
+ }, restrictions[0])), /*#__PURE__*/_react.default.createElement(isDesktop ? _react.default.Fragment : _ui.View, isDesktop ? undefined : {
111
+ row: true,
112
+ wide: true
113
+ }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
114
+ className: style.prices
115
+ }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
116
+ bold: true,
117
+ headline: true,
118
+ level: 2
119
+ }, (0, _locale.currencyFormat)({
120
+ currency,
121
+ value: price * (amount || 1)
122
+ })), /*#__PURE__*/_react.default.createElement(_ui.View, {
123
+ row: true,
124
+ className: style.pricePerDay
125
+ }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
126
+ tiny: true
127
+ }, (0, _locale.currencyFormat)({
128
+ currency,
129
+ value: dayPrice
130
+ })), /*#__PURE__*/_react.default.createElement(_ui.Text, {
131
+ lighten: true,
132
+ tiny: true
133
+ }, translate(_Item.L10N.LABEL_PER_UNIT_NIGHT)))), occupation.length === 1 ? /*#__PURE__*/_react.default.createElement(_ui.Button, {
134
+ large: true,
135
+ secondary: amount > 0,
136
+ onPress: () => onChange({
137
+ id,
138
+ amount: amount > 0 ? 0 : 1,
139
+ basePrice,
140
+ price,
141
+ standalone: true
142
+ }),
143
+ className: style.button
144
+ }, translate(amount > 0 ? _Item.L10N.LABEL_DESELECT : _Item.L10N.LABEL_SELECT)) : /*#__PURE__*/_react.default.createElement(_ui.InputSelect, {
145
+ name: "amount",
146
+ disabledOptions: rateAvailability.map(amount => amount > availableAmount),
147
+ options: rateAvailability,
148
+ value: amount,
149
+ onChange: amount => onChange({
150
+ id,
151
+ amount: parseInt(amount),
152
+ basePrice,
153
+ price
154
+ }),
155
+ className: style.inputSelect
156
+ })))), /*#__PURE__*/_react.default.createElement(_ui.View, {
157
+ row: true,
158
+ className: style.footer
159
+ }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
160
+ small: true
161
+ }, cancellation.hint), /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
162
+ onPress: () => onRateInfo(rate)
163
+ }, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
164
+ value: _helpers.ICON.INFO
165
+ }))));
166
+ }), !expanded && /*#__PURE__*/_react.default.createElement(_shared__.ButtonMore, {
167
+ text: translate(_Item.L10N.ACTION_MORE_RATES),
168
+ onPress: () => setExpanded(true),
169
+ className: style.buttonMore
170
+ }));
171
+ };
172
+ exports.Rates = Rates;
173
+ Rates.displayName = 'Mirai:Core:Rates:Item.Rates';
174
+ Rates.propTypes = {
175
+ availability: _propTypes.default.number,
176
+ filter: _propTypes.default.shape({
177
+ board: _propTypes.default.string
178
+ }),
179
+ occupation: _propTypes.default.arrayOf(_propTypes.default.array),
180
+ rates: _propTypes.default.arrayOf(_propTypes.default.shape({})),
181
+ selected: _propTypes.default.shape({}),
182
+ onChange: _propTypes.default.func,
183
+ onRateInfo: _propTypes.default.func
184
+ };
185
+ //# sourceMappingURL=Item.Rates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Item.Rates.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Item","style","_shared__","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Rates","_ref","availability","filter","occupation","rates","selected","onChange","onRateInfo","isDesktop","useDevice","translate","useLocale","value","currency","useStore","expanded","setExpanded","useState","length","expandedRate","setExpandedRate","availableAmount","reduce","total","_ref2","_selected$id","id","amount","createElement","View","className","styles","wide","rate","arguments","undefined","board","boardName","map","basePrice","cancellation","discount","included","name","dayPrice","price","restrictions","min","max","rateAvailability","Array","from","_","index","expandedContent","includes","key","box","row","header","Text","lighten","small","upperCase","percentage","Discount","content","texts","bold","headline","level","slice","item","Action","inline","onPress","actionExpand","Notification","warning","React","Fragment","prices","currencyFormat","pricePerDay","tiny","L10N","LABEL_PER_UNIT_NIGHT","Button","large","secondary","standalone","button","LABEL_DESELECT","LABEL_SELECT","InputSelect","disabledOptions","options","parseInt","inputSelect","footer","hint","Pressable","Icon","ICON","INFO","ButtonMore","text","ACTION_MORE_RATES","buttonMore","exports","displayName","propTypes","PropTypes","number","shape","string","arrayOf","array","func"],"sources":["../../../../../src/components/Rates/components/Item/Item.Rates.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, InputSelect, Notification, Pressable, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\n\nimport { Discount } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { ButtonMore } from '../../../__shared__';\nimport { ICON } from '../../../helpers';\n\nconst Rates = ({ availability = 0, filter = {}, occupation = [], rates = [], selected = {}, onChange, onRateInfo }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { value: { currency } = {} } = useStore();\n\n const [expanded, setExpanded] = useState(rates.length < 3);\n const [expandedRate, setExpandedRate] = useState([]);\n\n const availableAmount = availability - rates.reduce((total, { id }) => total + (selected[id]?.amount || 0), 0);\n\n return (\n <View className={styles(style.rates, expanded && style.expanded)} wide>\n {rates\n .filter((rate = {}) => (filter.board ? rate.boardName === filter.board : true))\n .map((rate = {}) => {\n const {\n basePrice,\n boardName,\n cancellation = {},\n discount = {},\n included = [],\n id,\n name,\n dayPrice,\n price,\n restrictions = [],\n amount: [min = 1, max = 2] = [],\n } = rate;\n\n const { amount = 0 } = selected[id] || {};\n const rateAvailability = [0, ...Array.from({ length: max - min + 1 }).map((_, index) => index + min)];\n const expandedContent = included.length === 1 || expandedRate.includes(id);\n\n return (\n <View key={id} className={styles(style.box, style.rate, amount && style.selected)}>\n <View row className={style.header}>\n <Text lighten small upperCase>\n {boardName}\n </Text>\n {discount.percentage > 0 && <Discount {...rate} />}\n </View>\n\n <View row={isDesktop} className={style.content}>\n <View className={style.texts}>\n <Text bold headline level={3}>\n {name}\n </Text>\n\n {included.length > 0 && (\n <View>\n {included.slice(0, expandedContent ? undefined : 1).map((item, index) => (\n <Text key={index} small lighten wide>\n {item}\n\n {index === 0 && !expandedContent && (\n <Action\n inline\n small\n onPress={() => setExpandedRate([...expandedRate, id])}\n className={style.actionExpand}\n >\n More Info\n </Action>\n )}\n </Text>\n ))}\n </View>\n )}\n\n {restrictions.length > 0 && (\n <Notification small warning>\n {restrictions[0]}\n </Notification>\n )}\n </View>\n\n {React.createElement(\n isDesktop ? React.Fragment : View,\n isDesktop ? undefined : { row: true, wide: true },\n <>\n <View className={style.prices}>\n <Text bold headline level={2}>\n {currencyFormat({ currency, value: price * (amount || 1) })}\n </Text>\n <View row className={style.pricePerDay}>\n <Text tiny>{currencyFormat({ currency, value: dayPrice })}</Text>\n <Text lighten tiny>\n {translate(L10N.LABEL_PER_UNIT_NIGHT)}\n </Text>\n </View>\n </View>\n\n {occupation.length === 1 ? (\n <Button\n large\n secondary={amount > 0}\n onPress={() => onChange({ id, amount: amount > 0 ? 0 : 1, basePrice, price, standalone: true })}\n className={style.button}\n >\n {translate(amount > 0 ? L10N.LABEL_DESELECT : L10N.LABEL_SELECT)}\n </Button>\n ) : (\n <InputSelect\n name=\"amount\"\n disabledOptions={rateAvailability.map((amount) => amount > availableAmount)}\n options={rateAvailability}\n value={amount}\n onChange={(amount) => onChange({ id, amount: parseInt(amount), basePrice, price })}\n className={style.inputSelect}\n />\n )}\n </>,\n )}\n </View>\n\n <View row className={style.footer}>\n <Text small>{cancellation.hint}</Text>\n <Pressable onPress={() => onRateInfo(rate)}>\n <Icon value={ICON.INFO} />\n </Pressable>\n </View>\n </View>\n );\n })}\n\n {!expanded && (\n <ButtonMore\n text={translate(L10N.ACTION_MORE_RATES)}\n onPress={() => setExpanded(true)}\n className={style.buttonMore}\n />\n )}\n </View>\n );\n};\n\nRates.displayName = 'Mirai:Core:Rates:Item.Rates';\n\nRates.propTypes = {\n availability: PropTypes.number,\n filter: PropTypes.shape({\n board: PropTypes.string,\n }),\n occupation: PropTypes.arrayOf(PropTypes.array),\n rates: PropTypes.arrayOf(PropTypes.shape({})),\n selected: PropTypes.shape({}),\n onChange: PropTypes.func,\n onRateInfo: PropTypes.func,\n};\n\nexport { Rates };\n"],"mappings":"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"}
@@ -7,14 +7,12 @@ exports.Item = void 0;
7
7
  var _dataSources = require("@mirai/data-sources");
8
8
  var _locale = require("@mirai/locale");
9
9
  var _ui = require("@mirai/ui");
10
- var _Slider = require("@mirai/ui/build/components/Slider");
11
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _react = _interopRequireWildcard(require("react"));
13
- var _components = require("./components");
11
+ var _react = _interopRequireDefault(require("react"));
14
12
  var _Item = require("./Item.l10n");
15
13
  var style = _interopRequireWildcard(require("./Item.module.css"));
16
- var _shared__ = require("../../../__shared__");
17
- var _helpers = require("../../../helpers");
14
+ var _Item2 = require("./Item.Preview");
15
+ var _Item3 = require("./Item.Rates");
18
16
  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); }
19
17
  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; }
20
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -22,48 +20,24 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
22
20
  const Item = _ref => {
23
21
  let {
24
22
  availability = 0,
25
- filter = {},
26
- images = [],
27
23
  name: title,
28
- occupation = [],
29
- rates = [],
30
- selected = {},
31
24
  taxes,
32
- onChange,
33
- onMoreInfo,
34
- onRateInfo,
35
25
  ...others
36
26
  } = _ref;
37
27
  const {
38
28
  isDesktop,
39
- width
29
+ isMobile
40
30
  } = (0, _ui.useDevice)();
41
31
  const {
42
32
  translate
43
33
  } = (0, _locale.useLocale)();
44
34
  const {
45
35
  value: {
46
- currency,
47
36
  hotel: {
48
37
  warningAvailability = 9999
49
38
  }
50
39
  } = {}
51
40
  } = (0, _dataSources.useStore)();
52
- const previewRef = (0, _react.useRef)(null);
53
- const [expanded, setExpanded] = (0, _react.useState)(rates.length < 3);
54
- const [expandedRate, setExpandedRate] = (0, _react.useState)([]);
55
- const [sliderWidth, setSliderWidth] = (0, _react.useState)(320);
56
- (0, _react.useEffect)(() => {
57
- var _previewRef$current;
58
- if (previewRef.current) setSliderWidth((_previewRef$current = previewRef.current) === null || _previewRef$current === void 0 ? void 0 : _previewRef$current.clientWidth);
59
- }, [width]);
60
- const availableAmount = availability - rates.reduce((total, _ref2) => {
61
- var _selected$id;
62
- let {
63
- id
64
- } = _ref2;
65
- return total + (((_selected$id = selected[id]) === null || _selected$id === void 0 ? void 0 : _selected$id.amount) || 0);
66
- }, 0);
67
41
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
68
42
  className: [style.box, style.item, others.className]
69
43
  }, /*#__PURE__*/_react.default.createElement(_ui.View, {
@@ -74,7 +48,7 @@ const Item = _ref => {
74
48
  headline: true,
75
49
  level: 2,
76
50
  className: style.title
77
- }, title), /*#__PURE__*/_react.default.createElement(_ui.Text, {
51
+ }, title), !isMobile && /*#__PURE__*/_react.default.createElement(_ui.Text, {
78
52
  small: true
79
53
  }, translate(taxes ? _Item.L10N.LABEL_EXCLUDES_TAXES_FEES : _Item.L10N.LABEL_INCLUDES_TAXES_FEES)), availability <= warningAvailability && /*#__PURE__*/_react.default.createElement(_ui.Notification, {
80
54
  error: true,
@@ -84,162 +58,9 @@ const Item = _ref => {
84
58
  }))), /*#__PURE__*/_react.default.createElement(_ui.View, {
85
59
  row: isDesktop,
86
60
  className: style.info
87
- }, /*#__PURE__*/_react.default.createElement(_ui.View, {
88
- ref: previewRef,
89
- className: style.preview
90
- }, /*#__PURE__*/_react.default.createElement(_ui.View, {
91
- className: style.slider
92
- }, /*#__PURE__*/_react.default.createElement(_Slider.Slider, {
93
- captions: images.map(_ref3 => {
94
- let {
95
- alt
96
- } = _ref3;
97
- return alt;
98
- }),
99
- height: 220,
100
- images: images.map(_ref4 => {
101
- let {
102
- large
103
- } = _ref4;
104
- return large;
105
- }),
106
- thumbnails: images.map(_ref5 => {
107
- let {
108
- thumbnail
109
- } = _ref5;
110
- return thumbnail;
111
- }),
112
- width: sliderWidth,
113
- onChange: () => {},
114
- className: style.slider
115
- })), /*#__PURE__*/_react.default.createElement(_components.Features, _extends({
116
- box: true
117
- }, others)), isDesktop && /*#__PURE__*/_react.default.createElement(_components.Amenities, _extends({
118
- highlight: true
119
- }, others)), /*#__PURE__*/_react.default.createElement(_ui.Action, {
120
- inline: true,
121
- onPress: onMoreInfo
122
- }, translate(_Item.L10N.ACTION_MORE_INFO))), /*#__PURE__*/_react.default.createElement(_ui.View, {
123
- className: (0, _ui.styles)(style.rates, expanded && style.expanded),
124
- wide: true
125
- }, rates.filter(function () {
126
- let rate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
127
- return filter.board ? rate.boardName === filter.board : true;
128
- }).map(function () {
129
- let rate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
130
- const {
131
- basePrice,
132
- boardName,
133
- cancellation = {},
134
- discount = {},
135
- included = [],
136
- id,
137
- name,
138
- dayPrice,
139
- price,
140
- restrictions = [],
141
- amount: [min = 1, max = 2] = []
142
- } = rate;
143
- const {
144
- amount = 0
145
- } = selected[id] || {};
146
- const rateAvailability = [0, ...Array.from({
147
- length: max - min + 1
148
- }).map((_, index) => index + min)];
149
- const expandedContent = included.length === 1 || expandedRate.includes(id);
150
- return /*#__PURE__*/_react.default.createElement(_ui.View, {
151
- key: id,
152
- className: (0, _ui.styles)(style.box, style.rate, amount && style.selected)
153
- }, /*#__PURE__*/_react.default.createElement(_ui.View, {
154
- row: true,
155
- className: style.header
156
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
157
- lighten: true,
158
- small: true,
159
- upperCase: true
160
- }, boardName), discount.percentage > 0 && /*#__PURE__*/_react.default.createElement(_components.Discount, rate)), /*#__PURE__*/_react.default.createElement(_ui.View, {
161
- row: isDesktop,
162
- className: style.content
163
- }, /*#__PURE__*/_react.default.createElement(_ui.View, {
164
- className: style.texts
165
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
166
- bold: true,
167
- headline: true,
168
- level: 3
169
- }, name), included.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.View, null, included.slice(0, expandedContent ? undefined : 1).map((item, index) => /*#__PURE__*/_react.default.createElement(_ui.Text, {
170
- key: index,
171
- small: true,
172
- lighten: true,
173
- wide: true
174
- }, item, index === 0 && !expandedContent && /*#__PURE__*/_react.default.createElement(_ui.Action, {
175
- inline: true,
176
- small: true,
177
- onPress: () => setExpandedRate([...expandedRate, id]),
178
- className: style.actionExpand
179
- }, "More Info")))), restrictions.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.Notification, {
180
- small: true,
181
- warning: true
182
- }, restrictions[0])), /*#__PURE__*/_react.default.createElement(isDesktop ? _react.default.Fragment : _ui.View, isDesktop ? undefined : {
183
- row: true,
184
- wide: true
185
- }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
186
- className: style.prices
187
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
188
- bold: true,
189
- headline: true,
190
- level: 2
191
- }, (0, _locale.currencyFormat)({
192
- currency,
193
- value: price * (amount || 1)
194
- })), /*#__PURE__*/_react.default.createElement(_ui.View, {
195
- row: true,
196
- className: style.pricePerDay
197
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
198
- tiny: true
199
- }, (0, _locale.currencyFormat)({
200
- currency,
201
- value: dayPrice
202
- })), /*#__PURE__*/_react.default.createElement(_ui.Text, {
203
- lighten: true,
204
- tiny: true
205
- }, translate(_Item.L10N.LABEL_PER_UNIT_NIGHT)))), occupation.length === 1 ? /*#__PURE__*/_react.default.createElement(_ui.Button, {
206
- large: true,
207
- secondary: amount > 0,
208
- onPress: () => onChange({
209
- id,
210
- amount: amount > 0 ? 0 : 1,
211
- basePrice,
212
- price,
213
- standalone: true
214
- }),
215
- className: style.button
216
- }, translate(amount > 0 ? _Item.L10N.LABEL_DESELECT : _Item.L10N.LABEL_SELECT)) : /*#__PURE__*/_react.default.createElement(_ui.InputSelect, {
217
- name: "amount",
218
- disabledOptions: rateAvailability.map(amount => amount > availableAmount),
219
- options: rateAvailability,
220
- value: amount,
221
- onChange: amount => onChange({
222
- id,
223
- amount: parseInt(amount),
224
- basePrice,
225
- price
226
- }),
227
- className: style.inputSelect
228
- })))), /*#__PURE__*/_react.default.createElement(_ui.View, {
229
- row: true,
230
- className: style.footer
231
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
232
- small: true
233
- }, cancellation.hint), /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
234
- onPress: () => onRateInfo(rate)
235
- }, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
236
- value: _helpers.ICON.INFO
237
- }))));
238
- }), !expanded && /*#__PURE__*/_react.default.createElement(_shared__.ButtonMore, {
239
- text: translate(_Item.L10N.ACTION_MORE_RATES),
240
- onPress: () => setExpanded(true),
241
- className: style.buttonMore
242
- }))));
61
+ }, /*#__PURE__*/_react.default.createElement(_Item2.Preview, others), /*#__PURE__*/_react.default.createElement(_Item3.Rates, _extends({
62
+ availability
63
+ }, others))));
243
64
  };
244
65
  exports.Item = Item;
245
66
  Item.propTypes = {
@@ -261,7 +82,8 @@ Item.propTypes = {
261
82
  taxes: _propTypes.default.string,
262
83
  onChange: _propTypes.default.func,
263
84
  onMoreInfo: _propTypes.default.func,
264
- onRateInfo: _propTypes.default.func
85
+ onRateInfo: _propTypes.default.func,
86
+ onViewUrl: _propTypes.default.func
265
87
  };
266
88
  Item.displayName = 'Mirai:Core:Rates:Item';
267
89
  //# sourceMappingURL=Item.js.map